Вопрос про кэширование на основе БД-mysql

StalkerClasses

Новичок
Кэширование на сайте организовано на базе одной таблиц - из четырех колонок (id, идентификатор кэша, содержимое кэша, время истечения).

При полной закэшированности сайта - в данной таблице получается примерно 125 000 записей. По скорости вроде бы работает и нет нареканий. Конечно не так быстро, когда в таблице кэшей 10 000 - 12 000 записей.

Для увеличения скорости выборки кэша - придумал следующий алгоримт

Отражает только идею...
Если id записи (на основе _GET-данных) > 100 000 - мы кэшируем в таблицу №1 (и ее же используем)
Если id записи (на основе _GET-данных) > 200 000 - мы кэшируем в таблицу №2 (и ее же используем)
Если id записи (на основе _GET-данных) > 300 000 - мы кэшируем в таблицу №3 (и ее же используем)
и так далее...

Как Вы думаете - это позволит увеличить производительность кэша и соответственность скорость работы сайта?
 

Gas

может по одной?
Используй redis/memcached вместо этой самодеятельности.

Если потеоретизировать, то 100K работает медленнее чем 10K не потому что приходится дольше искать данные по ключу (надеюсь же индекс есть по полю, по которому идёт выборка),
а потому что данных много, они (индексное дерево, сами данные) в кеш базы/ос не влазят или "вымываются" чаще и приходится обращаться к диску, из-за этого падает скорость.
Следовательно, разделение на несколько таблиц никак не должно улучшить ситуацию.
Кеши конечно можно подкрутить, но не нужно этого, смотри первое предложение.
 
Последнее редактирование:

c0dex

web.dev 2002-...
Команда форума
Партнер клуба
Если бы гуглил, уже нашел бы memcached-tag(s), и либу от котерова ;)
 

Gas

может по одной?
StalkerClasses
нет нигде по умолчанию поддержки тегов, в mysql же нет, ты руками сделал, так же и с любым стореджем.
хранить теги вместе с кешируемой сущностью, временем добавления и отдельно сами теги и время добавления/изменения.
при доставании объекта, сравнивать его время с временами тегов, если у любого тега время больше времени сохранения объекта, то кеш проекспайрился
 

StalkerClasses

Новичок
StalkerClasses
нет нигде по умолчанию поддержки тегов, в mysql же нет, ты руками сделал, так же и с любым стореджем.
хранить теги вместе с кешируемой сущностью, временем добавления и отдельно сами теги и время добавления/изменения.
при доставании объекта, сравнивать его время с временами тегов, если у любого тега время больше времени сохранения объекта, то кеш проекспайрился
Значит иду в сторону memcache...
Спс.
 
Сверху