我知道最好的方法是不要在其他sql裏面有任何sql,特別是複雜的,並且最好在查詢之後使用分析,但是因爲系統的構建方式,我只會假裝只做它在一個查詢這個SQL(mySQL)的任何優化想法?
這裏是有問題的查詢(「是一個很酷的查詢」)
SELECT DISTINCT
o.orders_id,
o.faltantes,
o.customers_name,
o.payment_method,
o.date_purchased,
o.last_modified,
o.currency,
o.currency_value,
ot.text AS order_total,
st.stores_name
FROM (orders o
LEFT JOIN orders_total ot
ON (o.orders_id = ot.orders_id),
stores st,
orders_status s)
INNER JOIN orders_products op
ON (o.orders_id = op.orders_id)
WHERE o.orders_status != 19
AND ot.class = 'ot_total'
AND (ot.value > (SELECT
SUM(pc.monto) +SUM(p.monto)
FROM pagos_clientes pc,
pagos p
WHERE p.id_pago = pc.id_pago
AND pc.id_oferta = o.orders_id)
OR (SELECT
SUM(pc.monto) +SUM(p.monto)
FROM pagos_clientes pc,
pagos p
WHERE p.id_pago = pc.id_pago
AND pc.id_oferta = o.orders_id)IS NULL)
AND payment_method != 'Cambio por faltantes'
AND o.orders_stores_id = '3'
AND o.orders_stores_id = st.stores_id
AND ((o.orders_stores_id IN(1,3))
OR (op.products_distributors_id = '0'))
GROUP BY o.orders_id
ORDER BY o.orders_id DESC
由於任何人都可以解決這個問題:d(目前需要以防萬一2分鐘實時)
你對各種表格有什麼指標?你有沒有對查詢做過解釋? – 2010-07-12 09:25:23
這是一個查詢由oscommerce,whith幾個額外的字段 oscommerce具有myisam上的所有表與一個主鍵是autonumeric他們沒有任何關係 在這裏你有解釋結果:http:// www。 todoastros.com/explain.htm 感謝您的回答;) – Saikios 2010-07-12 09:35:25