SQL-tips
Hittade ett tips till när man ska forma SQL-frågor som innehåller OR för stora tabeller:
SELECT * FROM t1 FORCE INDEX (key1_key2_key3)
WHERE key1=1 OR key1=2 ORDER BY key2,key3 LIMIT 5, 5;
WHERE key1=1 OR key1=2 ORDER BY key2,key3 LIMIT 5, 5;
This can be worked around by using UNION:
(SELECT * FROM t1 FORCE INDEX (key1_key2_key3)
WHERE key1=1 ORDER BY key2,key3 LIMIT 10)
UNION
(SELECT * FROM t1 FORCE INDEX (key1_key2_key3)
WHERE key1=2 ORDER BY key2,key3 LIMIT 10)
ORDER BY key2,key3 LIMIT 5, 5
WHERE key1=1 ORDER BY key2,key3 LIMIT 10)
UNION
(SELECT * FROM t1 FORCE INDEX (key1_key2_key3)
WHERE key1=2 ORDER BY key2,key3 LIMIT 10)
ORDER BY key2,key3 LIMIT 5, 5
This rewrite can make the query go ~20000 times faster on a table with ~2M rows.
Taget från dev.mysql.com/doc/refman/5.0/en/order-by-optimization.html
Produkter
Som kund hos West Art Communication AB får ni full tillgång till vår stora kompetens och långa erfarenhet inom kundanpassade webblösningar och applikationer.
Xletter hjälper dig skicka ut designade nyhetsbrev, och även följa upp dessa med statistik.<
Med Power Project för du inte bara ett projektföringssystem, utan även ett CRM och kraftfullt affärssystem.<
Kontakta mig
Klas Zettergren
Områden:
E-handel, Webbsidor, Intranät
Telefon: +46 (0)70 751 21 73
Mail: klas@westart.se
Mail: klas@westart.se
» Se alla våra medarbetare