Mysql之索引的基本概念语法MySQL索引mysql索引怎么回事的建立对于MySQL的高效运行是很重要的mysql索引怎么回事,索引可以大大提高MySQL的检索速度 。打个比方,如果合理的设计且使用索引的MySQL是一辆兰博基尼的话,那么没有设计和使用索引的MySQL就是一个人力三轮车 。创建索引时,你需要确保该索引是应用在SQL 查询语句的条件(一般作为 WHERE 子句的条件) 。实际上,索引也是一张表,该表保存了主键与索引字段,并指向实体表的记录 。
上面都在说使用索引的好处,但过多的使用索引将会造成滥用 。因此索引也会有它的缺点:虽然索引大大提高了查询速度,同时却会降低更新表的速度 , 如对表进行INSERT、UPDATE和DELETE 。因为更新表时,MySQL不仅要保存数据,还要保存一下索引文件 。建立索引会占用磁盘空间的索引文件 。
CREATE (UNQIUE)INDEX +索引名称+ON+表名(列名(长度))
例如:create unique index ac on sys_user(account);
ALTER TABLE+表名+ADD(UNIQUE) INDEX+索引名称(列名)
例如:alter table sys_user add unique index pa(password);
DROP INDEX 索引名称 ON 表 或者 alter table 表名 drop index 索引名;
例如:drop index pa on sys_user; alter table sys_user drop index pa;
格式:SHOW INDEX FROM 表名;
SHOW INDEX FROM sys_user;
MySQL索引MySQL的Innodb存储引擎的索引分为聚集索引和非聚集索引两大类
特点mysql索引怎么回事:B+树叶子节点存储行数据
一个表中mysql索引怎么回事,必须有一个聚集索引,只能有一个聚集索引 , Innodb通常把一个表的主键索引作为聚集索引,如果没有主键InnoDB会选择一个唯一索引代替 。如果没有这样的索引 , InnoDB会隐式的定义一个主键来作为聚集索引,这个字段为6个字节,类型为长整形 。
利用主键索引查找行数据是最快的,建议使用自增主键原因是利于索引树的构建(主键自增写入时新插入的数据不会影响到原有页,插入效率高;但是如果主键是无序的或者随机的 , 那每次的插入可能会导致原有页频繁的分裂,影响插入效率)
特点:B+树叶子节点存储主键ID
一个表中可以有多个非聚集索引 , 每个非聚集索引即是一棵B+树
通过非聚集索引查找数据时 , 需要先在非聚集索引上找到主键ID,再从聚集索引获取行数据 , 这个过程就称之为回表
B树索引中的B树实际上是B+树 , 至于为什么使用B+树而不使用B树或者红黑树的原因在另外的文章中有提及 。
特点:
特点:类似JDK中的HashMap,但无法支持范围查询
特点:使用的算法仍然是B树索引,不同的就是索引列的值必须唯一
对于普通索引来说,查找到满足条件的第一个记录后,需要查找下一个记录,直到碰到第一个不满足条件的记录 。
对于唯一索引来说,由于索引定义了唯一性,查找到第一个满足条件的记录后,就会停止继续检索,提升索引性能
另外插入行时会构建该唯一索引,假如索引值重复将插入失败,适合业务上做唯一性检验
通过建立倒排索引,可以极大的提升检索效率,解决判断字段是否包含的问题,但是业务上一般都不采用这种索引,而是使用ES处理全文搜索需求
仅对某个特定字段建立的索引 , 如(biz_id)
对多个字段建立的索引,如(biz_id,type)
Mysql InnoDB索引原理 理解Mysql索引的原理和数据结构有助于我们更好的使用索引以及进行SQL优化,索引是在存储引擎层面实现的,所以不同的引擎实现的索引也有一定的区别,但是在生产环境中 , 我们最常用的就是InnoDB引擎和B树索引 , OK,那本文要讨论的重点也同样是InnoDB引擎下的B树索引。
推荐阅读
- vue中ts迁移到js,vue3 迁移
- 电脑u盘怎么隐藏软件,u盘如何隐藏文件夹
- 安卓浏览器缓存的视频在哪,安卓浏览器视频缓存在哪个文件夹
- 新媒体人如何设计产品,如何制作新媒体产品
- vb.net继续for vb的for循环如何使用
- 电脑用什么配置吃鸡,电脑用什么配置吃鸡比较好
- 如何让水工师傅推广产品,如何让水工师傅推广产品
- 安娜卖直播设备,抖音主播安娜
- 计算器vb.net 计算器免费下载