Ich habe eine AbfrageMysql Indizierung und tritt
SELECT `a`.restid, `b`.`name` AS execname, `c`.`dept_name`
FROM `tk_ticket` AS a
INNER JOIN `tk_acp_users` AS b ON `a`.`exec_id` = `b`.`id`
INNER JOIN `tk_ticket_dept` AS c ON `a`.`dept_id` = `c`.`dept_id`
WHERE `a`.`dept_id` IN(9,11)
AND `a`.`status` = 0
ORDER BY `a`.`date` DESC, `a`.`dept_id`
Ausgabe Erklären
1 SIMPLE a ALL exec_id_2 5391 Using where; Using filesort
1 SIMPLE b eq_ref PRIMARY PRIMARY 2 tk_new_db.a.exec_id 1
1 SIMPLE c eq_ref PRIMARY PRIMARY 1 tk_new_db.a.dept_id 1 Using where
Wenn ich einen Lauf erkläre ich eine vollständige Tabellen-Scan für die Tabelle erhalten ein, wie verhindere ich das von i geschieht einen Schlüssel hinzugefügt (exec_id, dept_id, status), aber dieser Index wird nicht berücksichtigt.
Was Primärschlüssel? –
Können Sie die Ausgabe von EXPLAIN-Plan veröffentlichen? –
Ich denke, "ORDER BY' a'.date' "verursacht den vollständigen Tabellenscan. Keine Zeit, es zu testen, also ist das nur eine blinde Vermutung, Entschuldigung. – Timur