mysql怎么创建联合索引(mysql的联合索引复合索引的实现)
类别:数据库 浏览量:2699
时间:2021-10-21 07:56:51 mysql怎么创建联合索引
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
)联合索引想要索引生效,只能使用col1
和col1
,col2
和col1
,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 联合索引 内容请搜索开心学习网以前的文章或继续浏览下面的相关文章希望大家以后多多支持开心学习网!
原文链接:https://www.cnblogs.com/wongdw/p/12887174.html
您可能感兴趣
- mysql数据类型和使用方法(MySQL数据类型全解析)
- mysql索引失效的几种情况(MySql范围查找时索引不生效问题的原因分析)
- mysql首次登录不上怎么办(Mysql匿名登录无法创建数据库问题解决方案)
- mysql数据库基础练习(最全50个Mysql数据库查询练习题)
- navicatformysql使用视图(Navicat for MySQL的使用教程详解)
- visual studio怎么连接数据库(使用Visual Studio Code连接MySql数据库并进行查询)
- mysql3种日志(mysql中的7种日志小结)
- mysql连接数与缓存(Mysql连接数设置和获取的方法)
- 适合小白入门的mysql教程索引简介(一篇带给你MySQL高性能索引)
- 将SQL Server数据迁移到MySQL的常见工具
- mac的mysql连接问题如何解决(MAC 中mysql密码忘记解决办法)
- mysql怎么使用null(MySQL null与not null和null与空值''''的区别详解)
- 宝塔mysql怎么设置优化(宝塔面板mysql内存占用高如何优化)
- mysqltruncate分区自定义参数(MySQL truncate table语句的使用)
- mysql的decimal类型(MySQL数据类型DECIMAL用法详解)
- mysql5.7.36详细安装(CenOS6.7下mysql 8.0.22 安装配置方法图文教程)
- 冯骥才 年意(冯骥才年意)
- ()
- 百事大吉蓝底 绿底手机高清壁纸(绿底手机高清壁纸)
- 蓝底证件照怎么制作 证件照换底色 换尺寸快速搞定(蓝底证件照怎么制作)
- 你喜欢足球吗 足球如何点亮世界的(足球如何点亮世界的)
- 不可分鸽是什么梗(不可分鸽是什么梗)
热门推荐
- thinkphp数据库使用(thinkphp3.2同时连接两个数据库的简单方法)
- css3颜色详解(CSS3混合模式mix-blend-mode/background-blend-mode简介)
- python矩阵怎么生成(python实现矩阵打印)
- css定位布局讲解(css position定位属性_动力节点Java学院整理)
- 延迟加载js文件
- php实现非递归快速排序(PHP实现无限极分类的两种方式示例递归和引用方式)
- 宝塔nginx配置修改(宝塔面板安装Tengine报错:nginx: [emerg] invalid IPv6 address in resolver)
- laravel5怎么设置中间件(浅谈Laravel中的三种中间件的作用)
- 如何将类库、DLL发布到Nuget
- jquery左右选择框
排行榜
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9