因之前代码查询较慢,explain分析后,先加索引处理,结果报错
> 1170 - BLOB/TEXT column 'value' used in key specification without a key length
在 varchar 字段上建立索引时,必须指定索引长度,没必要对全字段建立索引,根据 实际文本区分度决定索引长度即可。Java 开发手册 33/44 说明:索引的长度与区分度是一对矛盾体,一般对字符串类型数据,长度为 20 的索引,区分度会高达 90%以上,可以使用 count(distinct left(列名, 索引长度))/count(*)的区分度来确定。
越接近1表示重复数据越少,越适合建立索引。
已有数据加索引时间太长,但只有100多条数据
create table sys_data1 like sys_data;
create index idx_value on sys_data1(value(28));
INSERT into sys_data1 SELECT * from sys_data;
drop table sys_data;
rename table sys_data1 to sys_data;
sql尽量一条一条执行