Я запускаю форум на VPS, работающий с Percona DB, с PHP 5.5.8, кэширование Opcode и т. Д., Все это очень ориентировано на скорость.Самый быстрый способ увеличения счетчика в MySQL DB
Я также пользуюсь Новой реликвией (да, у меня есть футболка).
Как я настраиваю приложение, оптимизируя запросы, которые форум делает в БД для любого запроса в верхней части моего списка времени.
Прямо сейчас, самый трудоемкий запрос, который у меня есть, поскольку он наиболее часто используется, это простой счетчик попаданий на каждую тему.
Так запрос:
UPDATE topics SET num_views = num_views + 1 WHERE id_topic = ?
Я не могу думать о более простой способ выполнить это, или если какой-либо из различных других способов может быть быстрее, и почему.
Есть ли способ записать этот запрос еще быстрее или индекс, который я могу добавить в поле для ускорения?
Спасибо.
Привет, спасибо. Я не думал, что это можно сделать быстрее, но я подумал, что, возможно, применение чего-то вроде LIMIT = 1 (хотя бы только один id_topic) может улучшить его скорость, если внутренне это делает предложение WHERE более длительным. Кроме того, ваше упоминание индексов заставило меня взглянуть на индексы, и есть 8 индексов, некоторые дубликаты и нет в поле id_topic! Так что спасибо за то, что разобрали эту проблему для меня! :) –
@ i-CONICA, если id_topic - уникальный индекс (например, первичный ключ), добавляющий лимит после того, как не поможет. Если это не уникально, я бы смутился тем, как вы смотрите на него в одиночку. – Ray
да, это первичный ключ, спасибо еще раз. –