Bug #52762 like should be index optimised if starts with _ rather than %
| Submitted: | 12 Apr 2010 10:49 | Modified: | 13 Apr 2010 14:58 |
|---|---|---|---|
| Reporter: | ken sands | Email Updates: | |
| Status: | Verified | Impact on me: | |
| Category: | MySQL Server: Optimizer | Severity: | S5 (Performance) |
| Version: | 5.3 | OS: | Any |
| Assigned to: | CPU Architecture: | Any | |
| Tags: | _, INDEX, like, match exactly one | ||
[12 Apr 2010 10:49]
ken sands
[12 Apr 2010 11:41]
Valeriy Kravchuk
I think you mean '_', not '.': C:\Program Files\MySQL\MySQL Server 5.1\bin>mysql -uroot -proot -P3310 test Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 110 Server version: 5.1.43-community-log MySQL Community Server (GPL) Type 'help;' or '\h' for help. Type '\c' to clear the current input statement. mysql> create table ttext(id int primary key, c1 varchar(20)); Query OK, 0 rows affected (0.17 sec) mysql> alter table ttext add key k1 (c1(5)); Query OK, 0 rows affected (0.30 sec) Records: 0 Duplicates: 0 Warnings: 0 mysql> insert into ttext values(1, 'abcd'), (2, 'ddddddd'), (3, 'fffff'); Query OK, 3 rows affected (0.09 sec) Records: 3 Duplicates: 0 Warnings: 0 mysql> explain select c1 from ttext where c1 like 'a%'; +----+-------------+-------+-------+---------------+------+---------+------+---- --+-------------+ | id | select_type | table | type | possible_keys | key | key_len | ref | row s | Extra | +----+-------------+-------+-------+---------------+------+---------+------+---- --+-------------+ | 1 | SIMPLE | ttext | range | k1 | k1 | 18 | NULL | 1 | Using where | +----+-------------+-------+-------+---------------+------+---------+------+---- --+-------------+ 1 row in set (0.05 sec) mysql> explain select c1 from ttext where c1 like '__fff'; +----+-------------+-------+------+---------------+------+---------+------+----- -+-------------+ | id | select_type | table | type | possible_keys | key | key_len | ref | rows | Extra | +----+-------------+-------+------+---------------+------+---------+------+----- -+-------------+ | 1 | SIMPLE | ttext | ALL | NULL | NULL | NULL | NULL | 3 | Using where | +----+-------------+-------+------+---------------+------+---------+------+----- -+-------------+ 1 row in set (0.00 sec) mysql> select c1 from ttext where c1 like '__fff'; +-------+ | c1 | +-------+ | fffff | +-------+ 1 row in set (0.00 sec) Am I right? This looks like a reasonable feature request to me.
[13 Apr 2010 14:30]
ken sands
Yes sorry I meant _ not . (it's the old jumping between many languages thing) Your example exactly states my case, thanks for that (I'll try to be as comprehensive in future).
Portions of this website are copyright © 2001, 2002 The PHP Group
Page generated in 0.040 sec. using MySQL 8.4.7-u6-cloud
Timestamp references displayed by the system are UTC.
Content reproduced on this site is the property of the
respective copyright holders.
It is not reviewed in advance
by Oracle and does not necessarily represent the opinion of
Oracle or any other party.