3 Stimmen

mysql join abfrage problem

Ich habe 2 Tabellen
1) "Produkte" mit Feldern (productid PK, Name, Beschreibung, Preis)
2) "sales" mit Feldern (salesid PK, salestime, productid, customername, customeremail, status)

Ich muss Daten im Tabellenformat anzeigen als

SalesID Produktname Betrag Kundenname Kundenadresse Zahlungsstatus

Hierfür verwende ich folgende Abfrage

SELECT s.salesid, p.name, p.price, s.customername, s.customeremail, s.status 
FROM sales s 
LEFT JOIN products p ON s.productid = p.productid 
ORDER BY salestime DESC 
LIMIT 0, 15 

Gibt es eine Möglichkeit, diese Abfrage zu optimieren, damit sie schneller ausgeführt wird?

2voto

Adriaan Stander Punkte 155899

Verfügen Sie über die entsprechenden Indizes für die Tabellen?

Werfen Sie einen Blick auf CREATE INDEX-Syntax y Wie MySQL Indizes verwendet

0voto

jon_darkstar Punkte 15748

Die Abfrage ist so gut, wie sie nur sein kann. Abfragen geben naturgemäß an, WAS zu tun ist, nicht WIE es zu tun ist.

Es ist das darunter liegende RDMS, das sich auf die Leistung auswirkt, und die wichtigste Möglichkeit, eine Abfrage wie diese zu beeinflussen, besteht darin, Indizes für die Spalten hinzuzufügen, die Sie verknüpfen (die oroductid jeder Tabelle)

0voto

D'Arcy Rittich Punkte 159655

Die Abfrage ist in Ordnung. Versuchen Sie die Indizierung productid in beiden Tabellen, sowie salestime .

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X