开发者社区 问答 正文

什么是最左前缀原则?

什么是最左前缀原则?

展开
收起
pandacats 2019-12-23 10:29:08 890 分享 版权
1 条回答
写回答
取消 提交回答
  • MySQL中的索引可以以一定顺序引用多列,这种索引叫作联合索引。

    如User表的name和city加联合索引就是(name,city),而最左前缀原则指的是,如果查询的时候查询条件精确匹配索引的左边连续一列或几列,则此列就可以被用到。如下:

    image.png 这里需要注意的是,查询的时候如果两个条件都用上了,但是顺序不同,如

    image.png 那么现在的查询引擎会自动优化为匹配联合索引的顺序,这样是能够命中索引的。

    由于最左前缀原则,在创建联合索引时,索引字段的顺序需要考虑字段值去重之后的个数,较多的放前面。ORDER BY子句也遵循此规则。

    2019-12-23 10:29:51
    赞同 展开评论
问答地址: