Кэширование запросов SQL и получение данных

Я пытаюсь настроить кеширование поиска по почтовому индексу, которое добавляет полученный поиск в текстовый файл, используя следующее:

file_put_contents($cache_file, $postcode."\t".$result."\n", FILE_APPEND);

Я хотел бы иметь возможность проверить этот файл перед выполнением запроса, который я сделал с помощью этого:

if ( strpos(file_get_contents($cache_file),$postcode) !== false) {
  // Run function
}

Я бы хотел найти в текстовом файле $ postcode with (как указано выше) и вернуть данные на одну вкладку ($ result).

Во-первых, возможно ли это?

Во-вторых, это вообще хороший способ кэшировать поисковые запросы SQL?

Кажется, с CSV проще ... stackoverflow.com/questions/12922772/searching-a-csv-with-ph‌ p

user1235285 21.10.2018 06:18
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
0
1
40
1

Ответы 1

1) да, это возможно - самый простой способ - сохранить данные поиска в array и записать / прочитать их из файла с помощью serialze / unserialze

$lookup_codes = array(
    '10101' => 'data postcode 1 ...',
    '10102' => 'data postcode 2 ...',
    // ...
);

file_put_contents($cache_file, serialize($lookup_codes));
$lookup_codes = unserialize(file_get_contents($cache_file));

$postcode = '10101';
if (array_key_exists($postcode, $lookup_codes)){
 // ... is available
}

2) - гораздо более интересный вопрос. Это В самом деле зависит от ваших данных, структуры, суммы и т. д.

На мой взгляд, кеширование усложняет ваше приложение, поэтому по возможности избегайте этого :-)

Вы можете попробовать:

  • Оптимизация SQL-запроса или структуры базы данных для ускорения запроса данных почтового индекса. Обычно базы данных довольно быстрые - и поэтому созданы для таких случаев использования.

    Я не уверен, какой db вы используете, но для MySQL посмотрите Выберите оптимизацию. Или в качестве другого ключевого слова вы можете искать INDEX, который сильно увеличивает запросы.

  • file_get_contents действительно быстр, но когда вы часто меняете файл, возможно, посмотрите другие способы кэширования, например Memcached для его хранения в памяти.

Извините за задержку ответа, я реализовал некоторую форму кеширования, но улучшение скорости было незначительным, поэтому, возможно, в данном случае оно того не стоит. Спасибо, что нашли время ответить! Спасибо!

user1235285 06.11.2018 09:40

Другие вопросы по теме