Ich versuche, mit Indizes zu experimentieren, aber ich bin es immer noch neu. Sagen wir, ich verwenden Sie die folgende viel fragt, damit ich Indizes für die Tabellen music
und musicians
vornehmen müssen.bester Weg, um mit diesen wiederholten Abfragen Index
SELECT *
FROM music
where musician_id = @id
SELECT *
FROM music
where musician_id = @id and date_of_birth > @date
SELECT *
FROM music
where date_of_birth > @date1 and date_of_birth < @date2
SELECT first_name, last_name, musician_website
FROM musicians
where last_name = @last_name
SELECT customer_id, first_name, last_name,musician_website
FROM musicians
where last_name = @last_name and musician_website= @site
Was Sie tun, denken, ist die beste Lösung, wenn ich für diese Abfragen machen Indizes möchten. Ist es am besten, ein für jede Spalte zu machen, was ich will (zum Beispiel 1 für musician_id
, einen für date_of_birth
etc ...) oder vielleicht sie als Paare wie diese nehmen: musician_id
mit date_of_birth
, dann last_name
mit musician_website
und dann nur date_of_birth
für die dritte Abfrage (wo ich sie nach Datum sortieren muss). Was wäre die beste Option hier und warum?
mindestens das Tabellenschema ... und warum 'music' eine' date_of_birth' hat? Sollen wir raten, dass Sie dort einen Beitritt planen? – SqlZim
Nein, es ist nur ein schlechter Name für den Tisch. Tischmusik halten Informationen über den Musiker und das Geburtsdatum. – user2975038
Klingt wie Sie über [Normalisierung] (http://mikehillyer.com/articles/an-introduction-to-database-normalization/) vor der Indizierung müssen sich Sorgen zu machen. – SqlZim