2016-05-06 2 views
0

У меня есть большой доступ к базе данных при загрузке страницы.include_once php file или fopen txt?

Поэтому я решаю сохранить обработанные результаты базы данных в txt-файле. и обновлять их в час в день.

Так что я знаю два способа:

сохранять их в файл PHP и называть их так:

система создания PHP-файл (с помощью PHP), сохранить ДАННЫЕ в ней и называть их так:

include_once("myfile.php"); 

другой способ сохранить в текстовый файл и назвать их так:

$myfile = fopen("myfile.txt", "r") or die("Unable to open file!"); 
echo fread($myfile,filesize("myfile.txt")); 
fclose($myfile); 

Я хочу знать, какой метод быстрее или лучше?

+4

Ни то, ни другое. Используйте реальную базу данных. – mario

+1

Используйте правильный кеш, как Redis. Или, как уже было предложено, используйте базу данных, которая дает вам необходимую производительность. – Repox

+1

@mario почему? реальная база данных загружает около 15 секунд для меня, но этот метод меньше 1 секунды ... – elize

ответ

2

Что вы делаете, это кеширование результата запроса. Если это очень простой сайт, то этого решения может быть достаточно, но он не будет хорошо масштабироваться, если количество данных или сложность увеличится. Просто FIY, вы можете использовать базу данных для кэширования сгенерированных данных.

Если ваши запросы не выполняются изначально тяжелых вычислений или объединений, я попытался бы оптимизировать запросы перед выполнением кэширования. Как запросы к базе данных, так и файловая система доступа к файлам чтения, и файловые системы по своей природе медленнее, чем настоящие решения кэширования данных, такие как Redis.

Я даже не уверен, в чем ваш вопрос, но я надеюсь, что помог пролить свет на вашу ситуацию.