Я вообще себе сделал вытягивание и кеширование просмотров к топикам отдельно (так чтобы обновление не затрагивало кеш всего топика), даже к этому плагину когда-то писал дополнение.
Беспокоило то, что при большой интенсивности запросов update, вероятно, блокируется таблица со всеми топиками, что тормозит селекты.
Отдельная таблица не спасает, если она джоинится. Так что вариант таки дублировать это поле в двух таблицах и обновлять значения в таблице с топиками по крону, как предложил Wasja . Даже сделать ее типом MEMORY и транкейтить раз в час, например, после обновления данных в основной.
Для повышение производительности, по совету PSNet , хранение статистики осуществляется в отдельной таблице.
Если не секрет, можно на пальцах пояснить, будет ли прирост производительности, если данные о посещениях все равно надо вынимать. И та доп таблица будет джоиниться в каждом запросе. Разве что она не будет участвовать в выборке ключей топиков по фильтру (если не участвует в сортировке)?
А вообще реализация простая, что-то типа такого:
Сделайте наследование класса ModuleViewer в вашем плагине.
Беспокоило то, что при большой интенсивности запросов update, вероятно, блокируется таблица со всеми топиками, что тормозит селекты.
Отдельная таблица не спасает, если она джоинится. Так что вариант таки дублировать это поле в двух таблицах и обновлять значения в таблице с топиками по крону, как предложил Wasja . Даже сделать ее типом MEMORY и транкейтить раз в час, например, после обновления данных в основной.
Если не секрет, можно на пальцах пояснить, будет ли прирост производительности, если данные о посещениях все равно надо вынимать. И та доп таблица будет джоиниться в каждом запросе. Разве что она не будет участвовать в выборке ключей топиков по фильтру (если не участвует в сортировке)?
тут стоит before