2017-02-22 2 views
-1

Ich habe folgende MySQL-Abfrage und es wird mehr als 421ms wie kann ich das optimieren?Wie verbessert man die Leistung dieser Abfrage?

+1

Haben Sie Indizes erstellt? – Rahi

+1

421ms für eine Squillion Zeilen ist nicht schlecht. Ernsthaft können Sie jedoch Ihre Tischentwürfe und einen Erklärungs-Plan zeigen. –

+1

1. Pls liefern die vollständige Abfrage mit? S substituiert. 2. Bitte geben Sie auch die Ergebnisse der Erklärung für diese Abfrage an. 3. Geben Sie auch die Liste der Indizes mit ihren Spaltennamen an, die Sie für die Tabellen in der Abfrage definiert haben. 4. Sind Sie sicher, dass weniger als eine halbe Sekunde Laufzeit so schlecht ist? – Shadow

Antwort

-1

Sie benötigen eine Bedingung für Ihre Join (standardmäßig Mysql verwenden innere Join) an dieser Position. Es gibt keine Beziehung zwischen diesen Unternehmen und Kunden. Sollte in etwa so aussehen: "INNER JOIN companies o ON o.id = c.companiesId".

Um Ihre Abfrage zu beschleunigen, treten Sie aus dem größten in den kleineren Tabellen.

Ich kann nur raten, wie die Beziehung aussieht, aber diese Abfrage sollte Ihnen helfen, zu beenden.

Ich kann mir vorstellen, das ist der Grund, für diese Reaktionszeit!

SELECT 
    j.*, 
    c.cl_business_name, 
    c.cl_short_name, 
    m.me_last_name, 
    m.me_first_name, 
    o.co_name 
    [, j.jo_deleted_date -> can be ignored, is already in j.* included] 
FROM clients c 
INNER JOIN jobs j ON j.cl_id = c.cl_id AND j.jo_deleted = ? 
INNER JOIN companies o ON j.co_id = o.co_id 
LEFT JOIN members m ON j.me_id = m.me_id 
WHERE ? 
ORDER BY jo_deleted_date DESC 
+0

Ihre Abfrage hat Syntaxfehler .. –

+1

Ich stimme zu, dass explizite Join-Syntax ist besser als die implizite, aber in Bezug auf die Abfrage Leistung gibt es kaum einen Unterschied. Wenn es einen Unterschied gibt, führt dies normalerweise dazu, dass die Priorität expliziter Join über den Kommaoperator in der from-Klausel nicht verstanden wird. Es muss keine direkte Beziehung zwischen Unternehmen und Kunden geben, sie sind durch die Jobtabelle verbunden. – Shadow

Verwandte Themen