MySQL忽略二进制列的索引

时间:2015-01-17 16:59:27

标签: mysql indexing

我有一个二进制列索引表。使用观察非常慢的查询,其中在MySQL 5.0.45上使用binary_column = x'....'条件

创建测试表,如

CREATE TABLE  `test` (
  `h` binary(20) NOT NULL,
  `a` int(10) default NULL,
  PRIMARY KEY  (`h`)
) ENGINE=MyISAM;

然后在10k行的几次插入之后运行测试查询

SELECT count(a) FROM test where binary h = x'...';
or
SELECT count(a) FROM test where binary h = unhex('...');

观察行数增加的这些查询所花费的时间的线性增加。索引已创建(主键!):我看到1Mb的数据文件和1.5Mb的索引文件。 说明命令确认未使用主键:

id  select_type table   type    possible_keys key   key_len ref   rows  Extra
1   SIMPLE      test    ALL     null          null  null    null  40014 Using where

如何让MySQL使用二进制列的索引?

0 个答案:

没有答案