问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

MySQL单列索引和组合索引的区别介绍

发布网友 发布时间:2022-04-26 02:10

我来回答

2个回答

热心网友 时间:2022-04-09 00:47

  MySQL单列索引和组合索引的区别可能有很多人还不是十分的了解下面就为您分析两者的主要区别供您参考学习
  为了形象地对比两者再建一个表
  CREATE TABLE myIndex ( i_testID INT NOT NULL AUTO_INCREMENT vc_Name VARCHAR() NOT NULL vc_City VARCHAR() NOT NULL i_Age INT NOT NULLi_SchoolID INT NOT NULL PRIMARY KEY (i_testID) );
  在这 条记录里面 上 下地分布了 条 vc_Name="erquan" 的记录只不过 cityageschool 的组合各不相同
  来看这条 TSQLSELECT i_testID FROM myIndex WHERE vc_Name=erquanAND vc_City=郑州 AND i_Age=;
  首先考虑建MySQL单列索引
  在 vc_Name 列上建立了索引执行 TSQL 时MYSQL 很快将目标锁定在了 vc_Name=erquan 的 条记录上取出来放到一中间结果集在这个结果集里先排除掉 vc_City 不等于"郑州"的记录再排除 i_Age 不等于 的记录最后筛选出唯一的符合条件的记录
  虽然在 vc_Name 上建立了索引查询时MYSQL不用扫描整张表效率有所提高但离我们的要求还有一定的距离同样的在 vc_City 和 i_Age 分别建立的MySQL单列索引的效率相似
  为了进一步榨取 MySQL 的效率就要考虑建立组合索引就是将 vc_Namevc_Cityi_Age 建到一个索引里
  ALTER TABLE myIndex ADD INDEX name_city_age (vc_Name()vc_Cityi_Age);
  建表时vc_Name 长度为 这里为什么用 呢?因为一般情况下名字的长度不会超过 这样会加速索引查询速度还会减少索引文件的大小提高 INSERT 的更新速度
  执行 TSQL 时MySQL 无须扫描任何记录就到找到唯一的记录!!
  肯定有人要问了如果分别在 vc_Namevc_Cityi_Age 上建立单列索引让该表有 个单列索引查询时和上述的组合索引效率一样吗?大不一样远远低于我们的组合索引虽然此时有了三个索引但 MySQL 只能用到其中的那个它认为似乎是最有效率的单列索引
  建立这样的组合索引其实是相当于分别建立了
  vc_Namevc_Cityi_Age
  vc_Namevc_City
  vc_Name
  这样的三个组合索引!为什么没有 vc_Cityi_Age 等这样的组合索引呢?这是因为 mysql 组合索引“最左前缀”的结果简单的理解就是只从最左面的开始组合并不是只要包含这三列的查询都会用到该组合索引下面的几个 TSQL 会用到
  SELECT * FROM myIndex WHREE vc_Name="erquan" AND vc_City="郑州"
  SELECT * FROM myIndex WHREE vc_Name="erquan"
  而下面几个则不会用到
  SELECT * FROM myIndex WHREE i_Age= AND vc_City="郑州"
  SELECT * FROM myIndex WHREE vc_City="郑州"
  转载,仅供参考。

热心网友 时间:2022-04-09 02:05

MySQL单列索引和组合索引的区别可能有很多人还不是十分的了解下面就为您分析两者的主要区别供您参考学习
  为了形象地对比两者再建一个表
  CREATE TABLE myIndex ( i_testID INT NOT NULL AUTO_INCREMENT vc_Name VARCHAR() NOT NULL vc_City VARCHAR() NOT NULL i_Age INT NOT NULLi_SchoolID INT NOT NULL PRIMARY KEY (i_testID) );
  在这 条记录里面 上 下地分布了 条 vc_Name="erquan" 的记录只不过 cityageschool 的组合各不相同
  来看这条 TSQLSELECT i_testID FROM myIndex WHERE vc_Name=erquanAND vc_City=郑州 AND i_Age=;
  首先考虑建MySQL单列索引
  在 vc_Name 列上建立了索引执行 TSQL 时MYSQL 很快将目标锁定在了 vc_Name=erquan 的 条记录上取出来放到一中间结果集在这个结果集里先排除掉 vc_City 不等于"郑州"的记录再排除 i_Age 不等于 的记录最后筛选出唯一的符合条件的记录
  虽然在 vc_Name 上建立了索引查询时MYSQL不用扫描整张表效率有所提高但离我们的要求还有一定的距离同样的在 vc_City 和 i_Age 分别建立的MySQL单列索引的效率相似
  为了进一步榨取 MySQL 的效率就要考虑建立组合索引就是将 vc_Namevc_Cityi_Age 建到一个索引里
  ALTER TABLE myIndex ADD INDEX name_city_age (vc_Name()vc_Cityi_Age);
  建表时vc_Name 长度为 这里为什么用 呢?因为一般情况下名字的长度不会超过 这样会加速索引查询速度还会减少索引文件的大小提高 INSERT 的更新速度
  执行 TSQL 时MySQL 无须扫描任何记录就到找到唯一的记录!!
  肯定有人要问了如果分别在 vc_Namevc_Cityi_Age 上建立单列索引让该表有 个单列索引查询时和上述的组合索引效率一样吗?大不一样远远低于我们的组合索引虽然此时有了三个索引但 MySQL 只能用到其中的那个它认为似乎是最有效率的单列索引
  建立这样的组合索引其实是相当于分别建立了
  vc_Namevc_Cityi_Age
  vc_Namevc_City
  vc_Name
  这样的三个组合索引!为什么没有 vc_Cityi_Age 等这样的组合索引呢?这是因为 mysql 组合索引“最左前缀”的结果简单的理解就是只从最左面的开始组合并不是只要包含这三列的查询都会用到该组合索引下面的几个 TSQL 会用到
  SELECT * FROM myIndex WHREE vc_Name="erquan" AND vc_City="郑州"
  SELECT * FROM myIndex WHREE vc_Name="erquan"
  而下面几个则不会用到
  SELECT * FROM myIndex WHREE i_Age= AND vc_City="郑州"
  SELECT * FROM myIndex WHREE vc_City="郑州"
  
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
成都有没有类似蛟龙港这样的地段。打算做小吃车。 蛟龙港有哪些繁华街道 opporeno5有没有nfc功能 oppo支持nfc功能吗 reno5支持nfc功能吗 reno5怎么使用nfc功能 VMware虚拟化平台虚拟机硬盘类型转换 中国的虚拟主机 救命啊..求大侠帮忙啊...昨天去网吧玩龙之谷一会就断开连接.电脑显示... 笔记本电脑打ui和oi什么意思UI设计笔记本电脑配置 ...高级账户的密码!怎么办啊?哪位计算机大侠帮忙解决解决! 英语卷舌,舌头有几种位置可以放 抖音短视频为什么吸引我们? mysql 使用索引和不使用索引的区别 MySQL单列索引和组合索引的区别详解 mysql 索引 区分度多少合适 mysql 普通索引和全文索引的区别 MYSQL中MyISAM 和InnoDB索引的区别 关于mysql复合索引和普通索引的区别介绍 mysql主键索引和普通索引区别 mysql 复合索引和普通索引的区别 简述推动人类社会进步的两对矛盾 推动社会历史发展的基本矛盾是什么 社会主要矛盾在历史发展中的作用 社会基本矛盾在历史发展中的作用 为什么说社会基本矛盾在社会发展中起根本的决定作用如题 什么是社会基本矛盾?其辩证运动是怎样推动社会发展的?(15分) 为什么说社会主义基本矛盾是社会发展的根本动力? 如何理解社会基本推动人类社会的发展 马克思主义基本原理,试论述社会的基本矛盾是推动人类社会发展的基本动力 为什么说社会基本矛盾是社会发展的决定力量 社会基本矛盾是社会发展的基本动力还是根本动力? CAD实例讲解:绘制一个红色的五角星 家用那种路由器好,三层楼最都好用,什么牌最合适 历史上犹太人被哪个国家灭了 犹太王国是何时灭亡的? 镜面魔方复原公式 镜面魔方第三层的还原公式? 三阶镜面魔方完整的还原方法 三阶镜面魔方顶层求图解! 橱柜五金包括什么 镜面魔方还原教程是怎样的? 橱柜五金都包含什么? 镜面魔方怎么拼 橱柜包含哪些五金件 百度文库收费 橱柜五金件包括什么?哪位了解? 镜面魔方的图解公式 橱柜五金件包括什么?厨房五金用品又有哪些? 镜面魔方的图解公式是什么? 橱柜五金件包括什么?应该怎么挑选? 镜面魔方最后一步还原