Bonjour à tous,
J'ai besoin de votre aide sur une requête dont son plan d'éxecution me paraît un peu bizarre :
voici la req et son plan :
1 2 3
| explain SELECT STRAIGHT_JOIN B2.id_2 , A.value
FROM table1 A , table2 B2
WHERE A.id_iddim1 = B2.id_2; |
+----+-------------+-------+------+---------------+------+---------+------------------------------+---------+--------------------------+
| id | select_type | table | type | possible_keys | key | key_len | ref | rows | Extra |
+----+-------------+-------+------+---------------+------+---------+------------------------------+---------+--------------------------+
| 1 | SIMPLE | A | ALL | PRIMARY | NULL | NULL | NULL | 6288277 | |
| 1 | SIMPLE | B2 | ref | ind1 | ind1 | 5 | mabase.A.id_iddim1 | 1 | Using where; Using index |
+----+-------------+-------+------+---------------+------+---------+------------------------------+---------+--------------------------+
Le probléme est que l'optimiseur fait le parcours de toute la table A même si elle est indexée :
+---------------------------+------------+----------+--------------+-------------+-----------+-------------+----------+--------+------+------------+---------+
| Table | Non_unique | Key_name | Seq_in_index | Column_name | Collation | Cardinality | Sub_part | Packed | Null | Index_type | Comment |
+---------------------------+------------+----------+--------------+-------------+-----------+-------------+----------+--------+------+------------+---------+
| table1 | 0 | PRIMARY | 1 | id_iddim1 | A | 6288277 | NULL | NULL | | BTREE | |
+---------------------------+------------+----------+--------------+-------------+-----------+-------------+----------+--------+------+------------+---------+
Avez-vous une idée sur l'origine de ce problème ?
Merci d'avance.
Partager