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

    企业400电话 网络优化推广 AI电话机器人 呼叫中心 网站建设 商标✡知产 微网小程序 电商运营 彩铃•短信 增值拓展业务
    mysql重复索引与冗余索引实例分析

    本文实例讲述了mysql重复索引与冗余索引。分享给大家供大家参考,具体如下:

    重复索引:表示一个列或者顺序相同的几个列上建立的多个索引。

    冗余索引:两个索引所覆盖的列重叠

    冗余索引在一些特殊的场景下使用到了索引覆盖,所以比较快。

    场景

    比如文章与标签表

    +——+——-+——+
    | id | artid | tag |
    +——+——-+——+
    | 1 | 1 | PHP |
    | 2 | 1 | Linux |
    | 3 | 2 | MySQl |
    | 4 | 2 | Oracle |
    +——+——-+——+

    在实际使用中, 有2种查询

    SQL语句:

    select tag from t11 where artid=2;
    select artid from t11 where tag='PHP';
    
    

    我们可以建立冗余索引,来达到索引覆盖的情况,这样的查询效率会比较高。

    1、建立一个文章标签表

    这个表中有两个索引,一个是at,一个是ta,两个索引都用到了artid和tag两个字段。

    CREATE TABLE `t16` (
     `id` int(10) unsigned NOT NULL AUTO_INCREMENT,
     `artid` int(10) unsigned NOT NULL DEFAULT '0',
     `tag` char(20) NOT NULL DEFAULT '',
     PRIMARY KEY (`id`),
     KEY `at` (`artid`,`tag`),
     KEY `ta` (`tag`,`artid`)
    ) ENGINE=InnoDB AUTO_INCREMENT=5 DEFAULT CHARSET=utf8
    
    

    2、测试两条SQL语句

    select artid from t11 where tag='PHP';
    
    

    这条语句的查询分析中的Extra有Using index,表示此处用到了索引覆盖,使用索引覆盖后就不需要回行查询数据,这样的查询效率比较高。

    select tag from t11 where artid = 1;
    
    

    这条语句的查询分析中的Extra有Using index,表示此处用到了索引覆盖,使用索引覆盖后就不需要回行查询数据,这样的查询效率比较高。

    关于索引覆盖的详细内容可以查看前面一篇文章:索引覆盖

    更多关于MySQL相关内容感兴趣的读者可查看本站专题:《MySQL索引操作技巧汇总》、《MySQL常用函数大汇总》、《MySQL日志操作技巧大全》、《MySQL事务操作技巧汇总》、《MySQL存储过程技巧大全》及《MySQL数据库锁相关技巧汇总》

    希望本文所述对大家MySQL数据库计有所帮助。

    您可能感兴趣的文章:
    • MySQL查询冗余索引和未使用过的索引操作
    • 详解mysql中的冗余和重复索引
    • MySQL中冗余和重复索引的区别说明
    上一篇:mysql 5.7.16 ZIP包安装配置教程
    下一篇:mysql建立高效的索引实例分析
  • 相关文章
  • 

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

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

    mysql重复索引与冗余索引实例分析 mysql,重复,索引,与,冗余,