Ik loop tegen het probleem aan dat een query in MySQL waarbij een JOIN en vervolgens een GROUP BY wordt gedaan erg traag is. De losse JOIN zonder GROUP BY en de GROUP BY zonder JOIN gaan razendsnel. De SELECT query zoals hij hieronder staat doet er iets meer dan 2 seconden over. Zonder de JOIN of zonder de GROUP BY minder dan 0,004 seconden. Waarom is de combinatie dan zo traag? Is het nog mogelijk dit substantieel te versnellen?
Beide tabellen heb ik gevuld met dummy data met behulp van deze generator: http://use-the-index-luke...07-30/mysql-row-generator
SQL:
1
2
3
4
5
| SELECT t_bpk.p FROM t_bpk JOIN t_bp ON t_bpk.bp = t_bp.id GROUP BY t_bpk.p ORDER BY NULL; |
SQL:
1
2
3
4
5
6
7
| CREATE TABLE t_bp (id INT PRIMARY KEY); INSERT INTO t_bp (SELECT n FROM generator_1m WHERE n < 150000); CREATE TABLE t_bpk (p INT, bp INT); CREATE INDEX p ON t_bpk (p); CREATE INDEX bp ON t_bpk (bp); INSERT INTO t_bpk (SELECT n,n FROM generator_1m WHERE n < 150000); |
Beide tabellen heb ik gevuld met dummy data met behulp van deze generator: http://use-the-index-luke...07-30/mysql-row-generator
[ Voor 6% gewijzigd door -Paul- op 13-10-2015 12:39 ]