我的编程空间,编程开发者的网络收藏夹
学习永远不晚

MySQL多列索引怎么用

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

MySQL多列索引怎么用

这篇文章将为大家详细讲解有关MySQL多列索引怎么用,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。

    针对此问题进行测试:
假设某个表有一个联合索引(c1,c2,c3,c4)一下___只能使用该联合索引的c1,c2,c3部分
A where c1=x and c2=x and c4>x and c3=x
B where c1=x and c2=x and c4=x order by c3
C where c1=x and c4= x group by c3,c2
D where c1=x and c5=x order by c2,c3
E where c1=x and c2=x and c5=? order by c2,c
1、创建测试表

点击(此处)折叠或打开

  1. mysql> show create table t1 \G

  2. *************************** 1. row ***************************

  3.        Table: t1

  4. Create Table: CREATE TABLE `t1` (

  5.   `c1` mediumint(8) unsigned NOT NULL DEFAULT '0',

  6.   `c2` smallint(5) unsigned NOT NULL DEFAULT '0',

  7.   `c3` int(10) unsigned NOT NULL DEFAULT '0',

  8.   `c4` int(10) unsigned NOT NULL DEFAULT '0',

  9.   `c5` mediumint(8) unsigned NOT NULL,

  10.   `c6` varchar(2) DEFAULT NULL,

  11.   KEY `idx_t1_c1_c2_c3_c4` (`c1`,`c2`,`c3`,`c4`)

  12. ) ENGINE=InnoDB DEFAULT CHARSET=utf8

2、选项A执行计划

点击(此处)折叠或打开

  1. mysql> explain select * from t1 where c1=100 and c2=2 and c4>1000 and c3=1419401948 \G

  2. *************************** 1. row ***************************

  3.            id: 1

  4.   select_type: SIMPLE

  5.         table: t1

  6.    partitions: NULL

  7.          type: range

  8. possible_keys: idx_t1_c1_c2_c3_c4

  9.           key: idx_t1_c1_c2_c3_c4

  10.       key_len: 13

  11.           ref: NULL

  12.          rows: 1

  13.      filtered: 100.00

  14.         Extra: Using index condition

3、选项B执行计划

点击(此处)折叠或打开

  1. mysql> explain select * from t1 where c1=100 and c2=2 and c4=1419317673 order by c3 \G

  2. *************************** 1. row ***************************

  3.            id: 1

  4.   select_type: SIMPLE

  5.         table: t1

  6.    partitions: NULL

  7.          type: ref

  8. possible_keys: idx_t1_c1_c2_c3_c4

  9.           key: idx_t1_c1_c2_c3_c4

  10.       key_len: 5

  11.           ref: const,const

  12.          rows: 1

  13.      filtered: 10.00

  14.         Extra: Using index condition

4、选项C执行计划

点击(此处)折叠或打开

  1. mysql> explain select * from t1 where c1=100 and c4=1419317673 group by c3,c2 \G

  2. *************************** 1. row ***************************

  3.            id: 1

  4.   select_type: SIMPLE

  5.         table: t1

  6.    partitions: NULL

  7.          type: ref

  8. possible_keys: idx_t1_c1_c2_c3_c4

  9.           key: idx_t1_c1_c2_c3_c4

  10.       key_len: 3

  11.           ref: const

  12.          rows: 1

  13.      filtered: 10.00

  14.         Extra: Using index condition; Using temporary; Using filesort



5、选项D执行计划

点击(此处)折叠或打开

  1. mysql> explain select * from t1 where c1=100 and c5=2 order by c2,c3 \G

  2. *************************** 1. row ***************************

  3.            id: 1

  4.   select_type: SIMPLE

  5.         table: t1

  6.    partitions: NULL

  7.          type: ref

  8. possible_keys: idx_t1_c1_c2_c3_c4

  9.           key: idx_t1_c1_c2_c3_c4

  10.       key_len: 3

  11.           ref: const

  12.          rows: 1

  13.      filtered: 10.00

  14.         Extra: Using index condition; Using where

6、选项E执行计划

点击(此处)折叠或打开

  1. mysql> explain select * from t1 where c1=1000 and c2=200 and c5=2 order by c2,c3 \G

  2. *************************** 1. row ***************************

  3.            id: 1

  4.   select_type: SIMPLE

  5.         table: t1

  6.    partitions: NULL

  7.          type: ref

  8. possible_keys: idx_t1_c1_c2_c3_c4

  9.           key: idx_t1_c1_c2_c3_c4

  10.       key_len: 5

  11.           ref: const,const

  12.          rows: 1

  13.      filtered: 10.00

  14.         Extra: Using index condition; Using where

关于“MySQL多列索引怎么用”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,使各位可以学到更多知识,如果觉得文章不错,请把它分享出去让更多的人看到。

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

MySQL多列索引怎么用

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

MySQL组合索引(多列索引)使用与优化案例详解

目录1、多列索引2、测试案例及过程2.1 创建一个测试数据库和数据表2.2 添加两个单列索引2.3 查询一条数据利用到两个列的索引2.4 查看执行计划2.5 然后删除以上索引,添加多列索引2.6 再次查询3、多列索引的使用顺序3.1 怎么选
2022-07-04

mysql怎么用索引

如何使用 mysql 索引索引是 MySQL 数据库中一种很重要的结构,它通过加快数据访问速度来提升查询效率。以下是使用 MySQL 索引的方法:1. 创建索引可以使用 CREATE INDEX 语句创建索引:CREATE INDE
mysql怎么用索引
2024-05-22

mysql中聚集索引、辅助索引、覆盖索引、联合索引怎么用

这篇文章主要介绍了mysql中聚集索引、辅助索引、覆盖索引、联合索引怎么用,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。聚集索引(Clustered Index)聚集索引就是
2023-06-29

mysql中groupby怎么用索引

在 mysql 中使用 group by 时,索引的使用可以极大地提高性能,前提是:确保索引列与 group by 子句中的列匹配。创建复合索引以提高分组涉及多个列时的性能。使用覆盖索引以避免访问表并直接从索引中检索数据。避免使用 orde
mysql中groupby怎么用索引
2024-05-09

mysql全文索引怎么用

全文索引通过分解文本数据并支持模糊搜索来提高文本数据搜索性能。创建全文索引的语法是:create fulltext index index_name on table_name (column_name)。使用 match() 函数进行搜索
mysql全文索引怎么用
2024-05-16

编程热搜

目录