У меня медленный (в течение 1,4 секунды) запрос, который некоторое время мне не давал покоя, поэтому я просто решил поднять его и посмотреть, сможет ли кто-нибудь помочь мне оптимизировать мои индексы, чтобы ускорить его:
select sql_calc_found_rows t.id, q.im_id, concat(t.si_id, ' ', t.de), q.date, q.das, q.dac, u.name, q.ac, q.st
from t300q q
left join t300 t on t.id = q.con_id
left join users u on u.id = q.user_id
order by q.date desc limit 0,100
sql объяснить результаты:
SIMPLE q ALL 89126 Using filesort
SIMPLE t eq_ref PRIMARY PRIMARY 4 db.q.con_id 1
SIMPLE u eq_ref PRIMARY PRIMARY 4 db.q.user_id 1
статистика сеанса:
Handler_read_first = 0
Handler_read_key = 177934
Handler_read_next = 23
Handler_read_prev = 679
Handler_read_rnd = 15
Handler_read_rnd_next = 89127
и у меня есть следующие индексы:
t.id - primary key
q.con_id |
q.date | - all form a single index
q.user_id |
u.id - primary key
, как вы можете видеть изобработчик сообщает, что размер таблицы q
составляет 89126 строк.
Это не большая проблема, но я хотел бы снизить скорость для этого запроса ниже 1 секунды, если это возможно.