Moin
Ein Kunmpel ist da auf ein kleines Problem mit mysql gestossen (FC3, Basisinstallation):
Diese 2 Commandos suchen (nach meinem Verständniss von SQL) die gleichen Zeilen raus:
1. select count(id) from result where name like 'H1\_0059.9\_\_%';
2. select count(id) from result where name\>'H1\_0059.9\_\_' and name
Das Ergebniss auf den Testdaten ist gleich. Die 2. Variante ist aber viel langsamer als die erste. Grund:
mysql\> explain select count(id) from result where name like 'H1\_0059.9\_\_%';
+----+-------------+--------+-------+---------------+------+---------+------+-------+--------------------------+
| id | select\_type | table | type | possible\_keys | key | key\_len | ref | rows | Extra |
+----+-------------+--------+-------+---------------+------+---------+------+-------+--------------------------+
| 1 | SIMPLE | result | range | name | name | 254 | NULL | 53967 | Using where; Using index |
+----+-------------+--------+-------+---------------+------+---------+------+-------+--------------------------+
Wogegen:
mysql\> explain select count(id) from result where name\>'H1\_0059.9\_\_' and name
Wieso durchsucht das eine Statment 53967 rows, das andere aber "nur" 1440 ? Müste der optimierer das nicht rausfischen ?
cu