hw120219 2019-01-15 09:35 采纳率: 33.3%
浏览 3911

mysql 为什么like不走索引

如题 请问mysql 为什么like不走索引,全部模糊查询,为何前面不模糊就可以走索引。

  • 写回答

6条回答 默认 最新

  • threenewbee 2019-01-15 10:00
    关注

    让你设计like的索引,你怎么设计?
    这个问题可能你没有思路,这么问吧:

    让你编一本英文字典(英文字典的单词可以看成字符串吧),你怎么编目录(目录可以看成索引吧)
    是不是只能是以字母A开头的,以字母B开头的,这么编。
    如果说把一个单词里包含某个子字符串的都变成索引。比如a ab abo abou about b bo bou bout o ou out u ut t都作为about这个单词的索引,你算算,这个索引有多少
    是不是比单词总数还多很多很多?一本字典如果正文只有500页,其中目录有1万页,你查单词还用先查目录么?

    那么就没有别的索引了?
    有的,这个叫做全文索引。我们可以把单词拆开来,把其中的一部分(词根、词缀)作为索引,市面上有很多词根为索引的字典啊。
    这个在mysql里面也有,用的就是类似的倒排索引的算法。

    评论

报告相同问题?