PHP: эффективный способ хранить простой массив кеша в базе данных? - PullRequest
2 голосов
/ 10 сентября 2010

В основном для плагина для динамического сайта (сайт может быть довольно большим) Я кеширую результаты какого-либо вида поиска (потому что результаты из внешнего поиска), результаты могут быть длиной 400-1500 символов.

Поскольку результаты поступают в массив, я использую json_encode (быстрее, чем сериализация) для хранения в базе данных, но ~ 1,5 КБ на запись (поскольку их может быть 10 000) = 15 МБ кажется мне немного большим.

Мои вопросы:
* Это приемлемый (по вашему мнению) размер для каждой записи?
* Будет ли выполнение GZip или аналогичного и сохранение в поле binary в MySQL более эффективным или займет слишком много процессорного времени в конце? Что-нибудь обычно используется подобное?

Я предпочитаю не использовать memcached или тому подобное, так как он должен быть переносимым (но будет ли это еще лучше?), Для меня это в основном теоретический вопрос, мне просто требуется ввод, прежде чем я реализую что-либо твердое.

1 Ответ

2 голосов
/ 10 сентября 2010

Всегда будет стоимость ЦП для любого вида сжатия, это зависит от того, есть ли у вас ресурсы для его обработки без какого-либо заметного замедления.Пространство дешево и обильно, так что 15мег в порядке.

Но если вы действительно хотите сжать поле, посмотрите функции Mysql COMPRESS () и UNCOMPRESS () .

Это может быть добавлено в ваш код, и это будет работать без изменения PHP / логики.

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