1
Ich fügte eine OR-Bedingung zu einer Abfrage hinzu und die Ausführungszeit der Abfrage wird auf 15+ Sekunden von weniger als 0,5 Sekunden erreicht. Alle in where-Klausel verwendeten Spalten werden indiziert. Frage mich, wie kann ich diese Abfrage optimieren.Hinzufügen der OR-Bedingung zur Abfrage verlangsamt
SELECT SQL_NO_CACHE COUNT(DISTINCT wo.id) AS totrows
FROM wo
LEFT JOIN wu
ON wu.id = wo.id
LEFT JOIN bu
ON bu.id = wu.id
LEFT JOIN ub
ON ub.uid = bu.id
JOIN u
ON u.id = wo.created_by
LEFT JOIN ws
ON ws.wo_id = wo.id, b
WHERE (wo.bid = '13'
AND (wo.created_by IN('2506') OR wo.uid IN('2506'))
AND wo.status != 5
AND (wo.uid = '' || wu.uid in ('406', 0) || wo.uid IS NULL)
AND wo.ut = 0
AND ((wo.wt = 'unit' AND (wo.archive != 1 OR wo.archive IS NULL)) OR wo.wt = 'common')) OR (ws.uid = 2506)
Entfernen OR (ws.uid = 2506)
macht Abfrage sehr schnell.