• 企业400电话
  • 微网小程序
  • AI电话机器人
  • 电商代运营
  • 全 部 栏 目

    企业400电话 网络优化推广 AI电话机器人 呼叫中心 网站建设 商标✡知产 微网小程序 电商运营 彩铃•短信 增值拓展业务
    mysql的联合索引(复合索引)的实现

    联合索引

    本文中联合索引的定义为(MySQL):

    ALTER TABLE `table_name` ADD INDEX (`col1`,`col2`,`col3`);

    联合索引的优点

    若多个一条SQL,需要多个用到两个条件

    SELECT * FROM `user_info` WHERE username='XX',password='XXXXXX';

    当索引在检索 password字段的时候,数据量大大缩小,索引的命中率减小,增大了索引的效率。

    符合索引的索引体积比单独索引的体积要小,而且只是一个索引树,相比单独列的索引要更加的节省时间复杂度和空间复杂度

    联合索引命中的本质(最左匹配的理解)

    定义

    当创建(col1,col2,col3)联合索引时,相当于创建了(col)单列索引,(clo1,clo2)联合索引以及(col1,col2,col3)联合索引想要索引生效,只能使用col1col1,col2col1,col2,col3三种组合;当然,col1,col3组合也可以,但实际上只用到了col1的索引,col3并没有用到!

    图解

    通俗理解

    联合索引相当于一个按照姓氏——名字的一个电话簿,只能先确定姓氏才可以命中索引,下列可以正确命中联合索引的语句( = IN直接的字段都可以乱序,MySQL的查询优化器可以优化成索引识别的形式)

    -- 只命中 col1,col2
    SELECT * FROM `table_name` WHERE `col1`='XX';
    -- 命中col1,col2。col1,col2的顺序可以颠倒
    SELECT * FROM `table_name` WHERE `clo1`='XX',`clo2`='XXX'; 
    SELECT * FROM `table_name` WHERE `clo2`='XXX', `clo1`='XX'; 
    -- 命中col1,col2,col3,同理,三个列的顺可以颠倒
    SELECT * FROM `table_name` WHERE `col1`='X',`col2`='XX',`col3`='XXX';
    SELECT * FROM `table_name` WHERE `col1`='X',`col3`='XX',`col2`='XXX';
    SELECT * FROM `table_name` WHERE `col2`='X',`col3`='XX',`col1`='XXX';

    到此这篇关于mysql的联合索引(复合索引)的实现的文章就介绍到这了,更多相关mysql 联合索引 内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

    您可能感兴趣的文章:
    • MySQL 独立索引和联合索引的选择
    • 深入浅析Mysql联合索引最左匹配原则
    • MySQL联合索引功能与用法实例分析
    • MySQL联合索引用法示例
    • MySQL中的联合索引学习教程
    • mysql联合索引的使用规则
    上一篇:Mysql性能优化之索引下推
    下一篇:MySQL的加密解密的几种方式(小结)
  • 相关文章
  • 

    © 2016-2020 巨人网络通讯 版权所有

    《增值电信业务经营许可证》 苏ICP备15040257号-8

    mysql的联合索引(复合索引)的实现 mysql,的,联合,索引,复合,