Was ist der beste Weg, mehrere Zeilen nach ID in sql auszuwählen?

8

Ich muss mehrere Datensätze auswählen

Ich benutze

%Vor%

diese Abfrage läuft 4 mal in jeder Sekunde mit PHP

Gibt es dafür einen besseren und schnelleren Weg?

    
lashX 04.03.2010, 12:53
quelle

5 Antworten

30
%Vor%

ist wahrscheinlich besser, aber nicht schneller.

    
anthares 04.03.2010, 12:54
quelle
5

Zusätzlich zu dem, was die Leute angegeben haben (wo id):

1) iF gibt es viele IDs, besser, sie in eine temporäre Tabelle zu stecken und einen Join mit dieser temporären Tabelle auszuführen

2) Stellen Sie sicher, dass Ihre Tabelle einen Index für die ID

hat

3) Wenn die Aktualität der Daten nicht kritisch ist, legen Sie die Abfrageergebnisse auf der Anwendungsseite in einen Cache

    
DVK 04.03.2010 12:56
quelle
3
%Vor%

Aber viermal pro Sekunde ist eine Menge. Ich würde über einen anderen Ansatz nachdenken, der weniger Datenbankzugriff benötigt.

    
Felix Kling 04.03.2010 12:54
quelle
3
%Vor%

Während ich dies weiter untersuchte, stieß ich auf einen interessanten Blog Post , das erklärt, wie man einen Satz verwendet, um eine schnellere SQL-Performance aus In-Klauseln zu erhalten, indem man eine Liste von IDs in einen gemeinsamen Tabellenausdruck (Common Table Expression, CTE) erstellt und dann daran anschließt.

Sie könnten also das PHP-Äquivalent des Folgenden codieren, um die maximale Leistung zu erhalten.

%Vor%     
Nicholas Murray 04.03.2010 12:55
quelle
1

Wenn Sie das tun

%Vor%

Es sollte Ihnen gut gehen, solange die Anzahl der IDs nicht zu groß wird. Ich würde vorschlagen, dass Sie einen Index für die IDs erstellen, damit die Abfrage schneller ausgeführt wird.

Überlegen Sie auch, Ihre Logik zu ändern, damit Sie nicht so viele IDs übergeben müssen

    
Marcos Placona 04.03.2010 12:59
quelle

Tags und Links