Тут дело такое, запрос `date_last` участвует не только на странице кто онлайн, а везде, точнее в ядро, и тут я задумался что стоит ли добавить это поле в индексы, так как в dcms поле `url` также в индексах, не знаю почему разработчики не добавили `date_last` тоже в индексы.. А индексы не страшны? Тоесть не испортит ли данные в mysql если баловаться индексами?
Razor, короче меня уже это бесит. Сейчас я поясню почему не стоит индексировать это поле.
Ну всё потому что эта колонка практически не используется в выборке, и выбирается исключительно по users.id, далее я предполагаю что users.id уже имеет индекс.
users.date_last в основном часто обновляется, и никакой индекс тут и близко не нужен, сократить нагрузку можно лишь сделав интервал между обновлениями данных из этой колонки.
Ну почему же не используется? Вот например везде в where где пользователь определяется есть данное поле, так почему же тогда `url` в индексе тоже?
Да естественно user.id имеет PRIMARY key
Razor, mysql не испортит данные, если много индексов, скорость записи будет падать, так как индексы отдельно от данных лежат, и фактически индексированные поля пишутся в файл дважды, в данные и в ииндексы
ну спасибо за пояснение, но только всё же мой вопрос актуальный
Спасибо, а ты согласен к посту товарища donttime?
Razor, про кеширование да.
Следует сохранять редко обновляемые и не требующие точности данные, в ФС например
На счёт индекса этого поля, выше писал, всё зависит от интенсивности выборки по данному полю
я dcms, да и вообще паблик движки уже более 2 лет не смотрел, что там да как
Ну кешировать представить не могу если честно, ведь получится какое-то недорозумение. Ты имеешь в виду, так как date_last не является редко обновляемым как например Имя, Фамилия пользователя и так далее не стоит добавлять это поле в индексы?