PHP SQL-Cache с сериализацией, оптимизацией? - PullRequest
0 голосов
/ 26 марта 2012

У меня есть база данных и таблица с данными около 200 МБ.(Описания продуктов и множество значений) Мне нужны эти значения для отображения некоторых страниц сведений.Поэтому я планирую использовать небольшую кеш-систему для ускорения работы.Я думаю, что сериализация - это лучший способ использовать php.

Теперь мне интересно, как лучше сохранить мои данные, чтобы получить лучшую скорость.Каждый продукт как один файл, один файл со всеми продуктами или кусками (скажем, 100 продуктов на файл)?

Я хочу сохранить информацию в объекте, подобном этому, сериализовать его и сохранить:

class saveObj
{
$sql = "SELECT * FROM products LIMIT 0,100"
$time;
$data;    
};

имя файла: sql_products_0_100.data

Будет ли мой план эффективным или кто-нибудь знает способ оптимизации?

(я буду создавать все файлы данных один раз в день)

1 Ответ

0 голосов
/ 26 марта 2012

Трудно сказать без написания тестового кода и профилирования.

Если вы выберете маршрут из 100 продуктов на файл, будут ли использоваться все 100 продуктов для создания страницы?

Наличие 1 файла для каждого продукта означает, что на диске нужно будет много искать, если вам нужны данные о 100 файлах на странице.

Наличие 100 продуктов на файл означает, что если вашей странице требуется только 1 продукт, то необходимо прочитать все данные и затем найти соответствующий продукт для извлечения.

Мое предложение состояло бы в том, чтобы исследовать БТР. Кэш хранится в памяти, поэтому доступ к нему очень быстрый, и вы можете хранить 1 продукт на ключ, что должно упростить получение и хранение.

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

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