Я в настоящее время индексирую одну из моих таблиц MySQL и дошел до того, что мне нужен совет эксперта о том, как действовать.
Таблица структурирована следующим образом:
ProductID - INT - UNSIGNED - NOT NULL - AUTO INCREMENT - PRIMARY KEY
ProductName - VARCHAR(64) - NOT NULL
ProductViews - INT - UNSIGNED - NOT NULL
Единственными полями, которые используются в предложениях WHERE, является ProductID.
Единственное поле, которое используется в ORDER BY, это ProductViews.
Таблица довольно большая, поэтому обычный запрос (при соединении с другой таблицей) может занять некоторое время.
Запуск EXPLAIN для типичного запроса показывает, что из-за поля ProductViews MySQL отображает «Extra: Using where; Using filesort»
Я хотел бы проиндексировать ProductViews, чтобы избавиться от сортировки файлов, однако значение в поле увеличивается на 1 при каждом посещении страницы.
Можно ли индексировать поле, которое постоянно изменяется, или постоянная запись снизит производительность? Это ситуация, когда я не могу много сделать, и мне приходится мириться с проблемой сортировки файлов?