Code Bye

求组 innodb的索引问题.

Create table zhifu(
zhifuID int(11) unsigned not null auto_increment,
Userid int(11) unsigned not null,
Dingdanhao varchar(20) not null,
Zhifuwancheng int(1) unsigned not null default 0,
Fanhui varchar(250),
PRIMARY KEY(zhifuID),
key dingdanhao(Dingdanhao),
Key Fanhui(Fanhui)
)engine=innodb
partition by hash(FenShuId)
partitions 30;
分了30个区,然后 Dingdanhao Fanhui 2个字段,给了普通索引.
当去执行  mysql> desc select * from zhifu dingdanhao = 20160113456317894563 \G
没起到索引作用吖,,不知道是那的问题,是不是订单号 字段长度问题,varchar(20)..
解决方案

10

订单号原因是是varchar  加引号
不加引号的话 要先强制类型转化再比较 所以用不到索引

10

楼上说的对。你可以explain下,看note 提示

10

Dingdanhao 是varchar类型,在查询的时候必须要加上单引号,才能用上索引,你加上单引号再试试。

10

 本人再问一下.你这个分区表是按FenShuId字段分区的..
你使用dingdanhao这个字段去查询,应该是全表扫描吧..不会用到INDEX的.

CodeBye 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权 , 转载请注明求组 innodb的索引问题.