Ами индекс на колоната с клеймо за време и потребителски идентификатор би бил полезен. Трябва да можете да четете резултата от оператор EXPLAIN.
Отидете в MySQL и направете следното:
EXPLAIN SELECT timestamp, username, [a few more] FROM log
WHERE timestamp BETWEEN '2012-03-30 08:00:00' AND '2012-03-30 16:00:00'
AND username='XX'
Това ви показва плана, който MySQL използва за изпълнение на заявката. Ще има колона, наречена ключ. Това показва какъв индекс MySQL използва в заявката. Подозирам, че ще видите ВСИЧКИ там, което означава, че MySQL сканира таблицата отгоре надолу, съпоставяйки всеки ред с вашата клауза where. Сега създайте индекс върху колоните за клеймо и потребителски идентификатор. Изпълнете оператора EXPLAIN отново. Трябва да видите индекса, който сте създали в ключовата колона.
Ако MySQL използва индекса, тогава вашата заявка трябва да бъде значително по-бърза. Само не забравяйте да не прекалявате с индекса. Индексите правят вмъкванията, актуализациите и изтриванията по-бавни. Когато вмъкнете нов ред в таблица и в таблицата има три индекса, новият ред трябва да запише 3 стойности в трите различни индекса. Така че това е нож с две остриета.