хранить данные в БД или в файлах? какой из них быстрее? - PullRequest
0 голосов
/ 15 ноября 2011

Я разрабатываю виджет проверки страницы. и я хочу кешировать ряды. потому что на каждой странице отправка запроса в гугл занимает много секунд.

общий вопрос: Кэш (сохранить, сохранить!) ранг каждого URL (и получить его потом) в базе данных быстрее и оптимизатор или в файлах? (1 файл для всех или 1 файл для каждого)

извините за мой ужасный английский

Спасибо

Ответы [ 5 ]

1 голос
/ 15 ноября 2011

Это зависит.

Прочтите эту статью Криса Дэвиса - особенно раздел 7.10.Вам также следует подумать о различиях между скоростью и масштабируемостью .

Хотя теоретически файловый подход (использующий иерархию каталогов для индексации и один URL на файл) будетбыстрее, PHP не имеет хороших возможностей для управления одновременным доступом к файлам.OTOH это ключевая особенность СУБД (будь то реляционная или nosql).Другое соображение заключается в том, как вы будете взаимодействовать с данными - вы, возможно, не будете получать их, используя тот же путь индексации, в котором вы их сохранили (вы все равно можете реализовать несколько индексов с файлами, но это намного проще вбаза данных).

1 голос
/ 15 ноября 2011

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

1 голос
/ 15 ноября 2011

Перейдите к базе данных и не забудьте включить индексацию для столбцов, которые вам нужны.

0 голосов
/ 15 ноября 2011

Кэшируйте результат лучше. Используйте mamchached или что-то подобное. Вам просто нужно сначала проверить, есть ли у вас данные в цепочке, если это так, то не отправляйте запрос в API и не принимайте данные оттуда. Но установите время для кеша (после этого кеш будет уничтожен). Это поможет вам синхронизировать ваши данные с живой. Если вы не кэшировали данные, отправьте запрос в api и сохраните последние данные в кеш. На мой взгляд, лучше.

0 голосов
/ 15 ноября 2011

Использование файлов будет медленнее, чем использование базы данных ... Поскольку база данных использует несколько оптимизационных и лучших алгоритмов для хранения и извлечения данных, это лучший выбор для выбора. Вы можете задать индексацию для своей базы данных и выбрать базу данных.механизм (если используется mysql) в качестве MEMORY (HEAP) Storage Engine для более быстрой работы ..

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...