Я пытаюсь настроить кеширование поиска по почтовому индексу, которое добавляет полученный поиск в текстовый файл, используя следующее:
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?






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 для его хранения в памяти.
Извините за задержку ответа, я реализовал некоторую форму кеширования, но улучшение скорости было незначительным, поэтому, возможно, в данном случае оно того не стоит. Спасибо, что нашли время ответить! Спасибо!
Кажется, с CSV проще ... stackoverflow.com/questions/12922772/searching-a-csv-with-ph p