mysql中blob,text字段的合成索引

 

在处理mysql 性能时,遇到了longtext 类型性能问题,在网上找了一些解决方案,感觉这个不错。整理文档供以后参考

在mysql中,原来有一个叫合成索引的,可以提高blob,text字段的效率性能, 

方法一:
但只能用在精确查询,核心是增加一个列,然后可以用md5进行散列,用散列值查找 则速度快 
比如: 
create table abc(id varchar(10),context blog,hash_value varchar(40)); 
insert into abc(1,repeat('hello',2),md5(context)); 
查找 
  select  from abc where hash_value=md5(repeat('hello',2));

方法二: 
  如需要进行模糊,则提供了前缀索引 
create index idx_blob on abc(context(100)); 
但是这个索引占的空间很大,可以选择字段前多少位做索引,这里则只对前100个字符模糊查询, 
注意%不能放前面,只能  select * from abc where context like 'hello%' 

你可能感兴趣的:(mysql)