Ich habe 2 Tabellen:Bessere Indizes für die Abfragen
oders(order_id, customer_id, order_date, product_id, order_quantity)
Kunden(customer_id, last_name, first_name, favorite_website)
Auch ich habe eine Anwendung, die häufigen Fragen in den Tabellen mit den folgenden Befehlen macht:
SELECT * FROM orders where customer_id = @id
SELECT * FROM orders where customer_id = @id and order_date > @date
SELECT * FROM orders where order_date > @date1 and order_date < @date2
SELECT first_name, last_name, favorite_website FROM customers where last_name = @last_name
SELECT customer_id, first_name, last_name,favorite_website
FROM customers where last_name = @last_name and favorite_website = @site
Ich möchte einige Indizes zu diesen Tabellen finden, deren Erstellung die Umsetzung der obigen Fragen beschleunigen würde.
Die einzigen Indizes gefunden sind:
1.`create index indexorders on orders (order_id, customer_id, order_date, product_id, order_quantity);`
2.`create index indexcust on customers (customer_id, last_name, first_name, favorite_website);`
Sind alle anderen Indizes, die als diese besser sind? Können Sie mir etwas vorschlagen?
Wollen Sie wirklich '*' in 'select' für alle Abfragen? Da der Index auch auf der Grundlage der Auswahl von Ionensäulen optimiert werden kann, ist –
das Platzieren der Spalte order_id in einem beliebigen Index unbrauchbar, da Ihr Beispiel-Workload niemals danach sucht. Da Sie BETWEEN und> und