2017-12-21 4 views
0

Ich habe eine Tabelle (Artikel) mit folgenden Struktur:Index Struktur für Sekundär Stichwortsuche

id int(10) unsigned not_null auto_increment 
title varchar(32) 
system_id int(10) unsigned default 0 
last_update int(10) unsigned default 0 

was ist die empfohlene Indexstruktur für die Tabelle, die die beste Leistung für diese Abfrage liefert:

"SELECT * FROM Articles where system_id = {ID} order by last_update desc" 
+0

Ein Index für 'system_id' und' last_update' sollte die Leistung verbessern. –

Antwort

1

Wie diskutiert here, mit der = Spalte beginnen (system_id), dann haben die "Reichweite" Spalte (last_update):

INDEX(system_id, last_update) 
1

Ich würde diese beiden Indizes hinzufügen und überprüfen Sie den EXPLAIN-Plan, um zu sehen, welche von ihnen verwendet werden. MySQL wählt manchmal den Ordnungsindex und nicht den zu filternden, und deshalb könnte der zweite in einigen Fällen besser sein.

ALTER TABLE `Articles` ADD INDEX `articles_index_1` (system_id, last_update); 
ALTER TABLE `Articles` ADD INDEX `articles_index_1` (last_update); 
Verwandte Themen