У меня есть база данных MySQL с более чем 10 тыс. Строк. Когда я выполнить запрос, чтобы получить все строки, в течение 24 часов, это занимает очень много времени, чтобы получить результаты:Улучшение производительности запроса с индексированием
$sql = 'SELECT *, DATE_FORMAT(m.time, "%d.%m.%Y %H:%i:%s") AS date
FROM markers m,pid p
WHERE m.time >=DATE_SUB(NOW(), INTERVAL 24 HOUR)
AND m.pidID=p.id';
Я прочитал об индексации таблиц, но не мог приспособить его к моему запросу. Может кто-нибудь объяснить, как изменить указанный запрос с индексированием, чтобы запрос не выполнял полную проверку таблицы?
Индексы не отображаются в запросах. Они находятся в конфигурации таблицы. Я бы попытался добавить индекс в 'm.time',' m.pid' и 'p.pid' – litelite
См. [" Как добавить индексы в таблицы mysql? "] (Http://stackoverflow.com/questions/3002605/how-do-i-add-indexes-to-mysql-tables) –
Индекс не является частью запроса. Вы должны изменить таблицу, чтобы добавить индекс * до *, чтобы выполнить запрос. –