mysql如何使用索引
概述索引优化的目的主要是让索引不失效,走正确的索引,今天主要分享的是最近整理的索引八大法则上篇,看完的话面试考索引应该没问题了~下面主要以实验来帮助大家理解~一、最佳左前缀法则1、定义在创建了多列索引...
2024.11.13所有内容收录在合集~MySQL入门到熟练。欢迎点赞关注我哦~
大型的数据库和高流量的网站中,索引很重要。可以显著提高查询的技能,也是开发人员和管理人员必会的基本操作。
索引的原理
数据库引擎用来快速数据的数据结构。根据查询来创建索引,盲目在表上添加索引,会增加数据库的大小,并降低正常的运行速度。
举例:
如果你想查找一个在北京市的人,在没有索引列表的情况下,SQL会查询顾客表中的所有记录,如果一个表中的数据非常之多,要查很多,如果有一个专门的北京索引,那就可以直接在里面查询。
索引一般是二进制树进行存储,在MySQL中可以展示为表。
创建索引为加快查询速度
首先让MySQL展示一个查询是如何进行的,在查询语句前添加一个explain
就会展示出类型,行数,等数据。这里的ALL是一个全表的扫描,行数是读取了多少行
现在添加索引
create index,索引名字可以用idx或者ix,后面紧跟下划线,这里查询的是district,所以可以是idx_district.后面写on ,连接表明和列名。
单独执行这句,再单独执行上一句,发现,展示的type就是ref了。行数也只需要查2行
中间的possible keys也是索引的内容,执行了最佳的索引。
查看索引 | Viewing Indexes
反正查看就是展示,show
这给表格里有4个
从上到下,Collation是排序规则,A是升序,D是降序。Cardinality是基数,表示估计索引中为唯一值的估计数量。输入ANALYZE TABLE可以获得重新的统计,是精确值。
第一个是主键,又称聚集索引 Clustered Index
添加主键的时候,就会自动添加
后面三行都是二级索引,每创建一个二级索引,MySQL会自动将id或主键纳入二级索引中。
Secondary Indexes
然后最右边是索引类型,BTERR,二进制树。在表中有直观的体现。
在面板中直接打开,任意一个表格,就会依次看到columns,索引,外键,触发器,点击就可以看到索引的多少,可以看到就代表已经启用。
概述索引优化的目的主要是让索引不失效,走正确的索引,今天主要分享的是最近整理的索引八大法则上篇,看完的话面试考索引应该没问题了~下面主要以实验来帮助大家理解~一、最佳左前缀法则1、定义在创建了多列索引...
2024.11.13一、什么是索引?索引就好比字典的目录一样我们通常都会先去目录查找关键偏旁或者字母再去查找要比直接翻查字典查询要快很多读者福利:私信 回复 012 即可获取一份578页PDF文档的MySQL学习笔记。二...
2024.11.15杨建荣,竞技世界数据库专家、dbaplus社群联合发起人,腾讯云TVP,Oracle ACE,《Oracle DBA工作笔记》和《MySQL DBA工作笔记》作者;现就职于竞技世界,擅长数据管理、数据...
2024.11.15数据库工具问题背景使用navicat工具管理mysql数据库,向两个表之间建立外键的时候,无法添加外键cannot add foreign key constraint原因要关联的字段类型或长度不一致...
2024.11.15出现的问题: 我这页面存中文到数据库会乱码 我打了断点 中文是传到后台dao层的 然后我试了下 把我本地项目连服务器数据库 保存不会乱码 我就怀疑是本地数据库有问题 然后我用navicat写了个upd...
2024.11.15