千家信息网

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

发表于:2026-11-03 作者:千家信息网编辑
千家信息网最后更新 2026年11月03日,这篇文章主要讲解了"MySQL单列索引和组合索引的区别",文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习"MySQL单列索引和组合索引的区别"吧!MySQL
千家信息网最后更新 2026年11月03日MySQL单列索引和组合索引的区别

这篇文章主要讲解了"MySQL单列索引和组合索引的区别",文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习"MySQL单列索引和组合索引的区别"吧!

  MySQL单列索引和组合索引的区别有哪些

  为了形象地对两者,再建一个表:

  CREATETABLEmyIndex(i_testIDINTNOTNULLAUTO_INCREMENT,vc_NameVARCHAR(50)NOTNULL,vc_CityVARCHAR(50)NOTNULL,i_AgeINTNOTNULL,i_SchoolIDINTNOTNULL,PRIMARYKEY(i_testID));

  在这10000条记录里面7上8下地分布了5条vc_Name="erquan"的记录,只不过city,age,school的组合各不相同。

  来看这条T-SQL:

  SELECTi_testIDFROMmyIndexWHEREvc_Name='erquan'ANDvc_City='郑州'ANDi_Age=25;

  首先考虑建MySQL单列索引:

  在vc_Name列上建立了索引。执行T-SQL时,MYSQL很快将目标锁定在了vc_Name=erquan的5条记录上,取出来放到一中间结果集。在这个结果集里,先排除掉vc_City不等于"郑州"的记录,再排除i_Age不等于25的记录,最后筛选出唯一的符合条件的记录。

  虽然在vc_Name上建立了索引,查询时MYSQL不用扫描整张表,效率有所提高,但离我们的要求还有一定的距离。同样的,在vc_City和i_Age分别建立的MySQL单列索引的效率相似。

  为了进一步榨取MySQL的效率,就要考虑建立组合索引。就是将vc_Name,vc_City,i_Age建到一个索引里:

  ALTERTABLEmyIndexADDINDEXname_city_age(vc_Name(10),vc_City,i_Age);

  建表时,vc_Name长度为50,这里为什么用10呢?因为一般情况下名字的长度不会超过10,这样会加速索引查询速度,还会减少索引文件的大小,提高INSERT的更新速度。

  MySQL单列索引和组合索引的区别有哪些

  执行T-SQL时,MySQL无须扫描任何记录就到找到唯一的记录。

  肯定有人要问了,如果分别在vc_Name,vc_City,i_Age上建立单列索引,让该表有3个单列索引,查询时和上述的组合索引效率一样吗?大不一样,远远低于我们的组合索引。虽然此时有了三个索引,但MySQL只能用到其中的那个它认为似乎是最有效率的单列索引。

  建立这样的组合索引,其实是相当于分别建立了

  vc_Name,vc_City,i_Agevc_Name,vc_Cityvc_Name

  这样的三个组合索引!为什么没有vc_City,i_Age等这样的组合索引呢?这是因为mysql组合索引"最左前缀"的结果。简单的理解就是只从最左面的开始组合。并不是只要包含这三列的查询都会用到该组合索引,下面的几个T-SQL会用到:

  SELECT*FROMmyIndexWHREEvc_Name="erquan"ANDvc_City="郑州"SELECT*FROMmyIndexWHREEvc_Name="erquan"

  而下面几个则不会用到:

  SELECT*FROMmyIndexWHREEi_Age=20ANDvc_City="郑州"SELECT*FROMmyIndexWHREEvc_City="郑州"

感谢各位的阅读,以上就是"MySQL单列索引和组合索引的区别"的内容了,经过本文的学习后,相信大家对MySQL单列索引和组合索引的区别这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是,小编将为大家推送更多相关知识点的文章,欢迎关注!

索引 组合 郑州 效率 查询 就是 结果 学习 三个 内容 情况 速度 长度 面的 有效 相似 相同 大不一样 不用 前缀 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 互联网科技有限公司 互联网科技股 互联网是第几次科技革命的成果 互联网科技垄断 远拓互联网科技 百单互联网科技有限公司 互联网女皇 腾讯科技 菲比寻常互联网科技 科技类的互联网平台 盛创互联网科技有限公司 中国的互联网科技企业的崛起 成都互联网科技公司100强 互联网经济与金融科技 互联网和黑科技的看法 米聚互联网科技南京有限公司排面 山东星卡互联网科技有限公司官网 35岁以上互联网科技行业 北京天晋互联网科技有限公司 上海旺乐尼互联网科技有限公司 广东猫王互联网科技有限公司电话 米客互联网科技 互联网养老 桔豆科技 卓越科技互联网 招聘 无锡溥仪互联网科技有限公司 衡水科技产业互联网平台 群盈汇互联网科技有限公司 众安科技工业互联网合作 半导体行业属于互联网高科技类吗 萌小萌互联网科技河南有限公司 上海互联网科技园景观
0