MySQL索引技巧之:制造数据的区分度
在日常工作中我们经常会遇到一些查询,表面上看数据的相似度很高,特别是关键的开头几位。
比如电话号码,身份证号。
就算建立了索引,查询时的扫描量还是很大。
这个时候有什么好的解决方法呢。
通过观察我们可以发现电话号码和身份证号有个共同的特点,他们的头几位高度一致,但是后面的区分度就很大。
所以我们可以把数据reverse之后存起来。这时再加上索引,效果就会棒棒哒。
比如:
13608715524
13608712365
我们在数据库中存成
42551780631
56321780631
这样的话扫描行数会明显降低,查询效率也就提高了。