标签:mysql索引
1. 合成索引
合成索引就是根据具体的来生成hash值,查找的时候通过hash值来查找就可以了。像blob、text这种数据直接放在where条件中查询效率是非常低的,所以可以使用合成索引。由于索引是hashcode,所以合成索引只能用于精确查询,对‘<‘、‘>‘等范围查找是没有作用的。我们可以使用MD5()、SHA1()或者CRC32()来生成索引,也可以在Java等编程语言中生成。如果生成的hash字符串尾部有空格,就不能存入char类型字段里,因为char会去掉尾部空格。
create table synthetic_test( id int, content text, hash_index varchar(50) ); insert into synthetic_test values (1, ‘abcd‘, md5(content));
这个时候我们就可以直接使用下面的SQL来查询:
select * from synthetic_test where hash_index = MD5(‘abcd‘);
本文出自 “銅鑼衛門” 博客,请务必保留此出处http://jaeger.blog.51cto.com/11064196/1749147
标签:mysql索引
原文地址:http://jaeger.blog.51cto.com/11064196/1749147