oracle怎么卸载(Linux系统下误删oracle数据库怎么办)
误删oracle数据库中的数据,在不考虑全库备份和利用归档日志情况,怎样快速恢复数据呢? 下面介绍3种方法。 1. 利用oracle提供的闪回方法进行数据恢复,...
2022-12-28
Mysql数据库是目前一款非常火爆的关系型数据库。
当我们谈到关系型数据库的时候,总会谈到索引(index),在面试中也是个高频问题。
可能我们在刚刚接触数据库的时候,对于索引我们总会听说索引的优点是加快查询的速度,利用索引可以确定表中数据的唯一性,使用group by、order by等分组、排序的时候,group by、order by后面所根据的字段最好是被索引包含的字段,因为被索引包含的字段是已经排好序的了,可以减少操作时间。同时也会听说不能创建太多的索引,因为在对表的数据进行insert、update、delete操作的时候,也需要动态的维护索引。总之我们听说索引的很多优点和缺点在此就不在累述。
那么我们是否考虑过这些优缺点的依据是什么?为什么索引会有这些优缺点?
其实很简单,依据主要是数据结构中的B+tree。
那么数据库中的索引和B+tree又有什么关系???别着急,且听我慢慢道来。
首先我们创建一个数据table
CREATE TABLE `student`.`Untitled` (
`studentId` varchar(4) NOT NULL,
`name` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL,
`age` int(255) NOT NULL,
PRIMARY KEY (`studentId`) USING BTREE,
INDEX `studentIndex`(`studentId`) USING BTREE
) ENGINE = InnoDB CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = Compact;
创建了一个student表,里面有三个字段学生Id、名字、年龄,其中学生Id字段添加索引,引擎类型为InnoDB。

图1
现在我们添加上了索引,此时会根据索引来构建一个B+tree结构。类似下图结构:

图2 B+树
当然我这里这是画了一个类似图,其实在数据量足够大的时候,树的根节点里面可以存储很多的数据,这就解决了树高度的问题(此知识点后面章节会详解),如果数据的高度小了,检索数据的次数就会相应减少。

图三 数据表和索引B+树的对应图
我们通过图三就可以明白我上面所列举的索引的优缺点了。
1.当我们通过索引来查询数据的时候,例如查询studengId为6的数据,我们通过检索B+树只需要3次就能找到数据,而且树的根节点还是在内存中,检索速度很快的,但是如果不走索引,需要逐条检索信息,需要检索6次才能找到数据,因为这些数据都是存储在磁盘上的,每次检索都是一个IO,如果数据量大了,检索数据是很浪费性能的。
2.我们看图三中索引列在B+树中都是排好序的,右面叶子节点的值总是比左边叶子节点的值大(B+树的性质)。这也就解释了上面优点中排好序了。
3.当我们每次修改、删除、更新数据的时候,都会重新维护索引,其实主要就是重新构建这个B+树。
4.创建多个索引,就会生成多个B+树,每个都是需要存储的,所以不建议创建太多的索引。
所以我们平时看到的索引优缺点都是主要围绕着这个B+树结构来解释的。
后续关于索引的深度内容将继续更新,只有懂得了索引,才可能对sql进行高效的优化。
以上内容就是为大家推荐的mysql关系型数据库的优缺点(3分钟了解mysql数据库知识)最佳回答,如果还想搜索其他问题,请收藏本网站或点击搜索更多问题
内容来源于网络仅供参考版权声明:所有来源标注为小樱知识网www.xiaoyin02.com的内容版权均为本站所有,若您需要引用、转载,只需要注明来源及原文链接即可。
本文标题:mysql关系型数据库的优缺点(3分钟了解mysql数据库知识)
本文地址:https://www.xiaoyin02.com/shcs/121504.html
相关文章
误删oracle数据库中的数据,在不考虑全库备份和利用归档日志情况,怎样快速恢复数据呢? 下面介绍3种方法。 1. 利用oracle提供的闪回方法进行数据恢复,...
2022-12-28
一、my.cnf配置文件datadir项配置错误或被启动脚本篡改 mysql自带的启动文件(/etc/init.d/mysqld)中会自动检测mysql的数据存储目录,若mysql新装,尚未初始化系...
2022-12-28
前言 相信越来越多人发现,招聘信息上不论是高级产品经理还是基础运营岗位,或者不论是互联网行业还是传统行业,都越来越要求“数据能力”,甚至有...
2022-12-28
数据库日常维护制度 目录 1.1 引言 2 1.1.1 文档目的 2 1.1.2 文档适用人员 2 1.2 制度 2 1.3 人员 2 1.3.1 职责 2 1.3.2 DBA团队 2 1.3.3 培训 2 1.4 管理 2 1.4.1 安全管理...
2022-12-27
本文主要讲解在Linux上安装、配置和使用MySQL,文中使用的Linux系统为CentOS7.6版本 最近 壹哥 购买了一个虚拟主机,但是 壹哥 很穷,所以只买了一个单纯的...
2022-12-27
热点文章
2021年独生子女补贴新政策是真的吗(独生子女证有有效期吗)
2021年国庆节阅兵仪式几点开始几点结束(2021年国庆节还有阅兵吗)
鼠目寸光一点红是什么生肖动物(鼠目寸光一点红)指什么生肖,紧密
k0到k9的玩法大全(强制gc的玩法和注意事项)
入土为安是什么生肖《入土为安》打一个生肖动物,词语解释
浙江12月底全面停工是真的吗(浙江什么时候放假停工)
如何做t(t怎么把p做哭)
北京口碑最差的三甲医院(北京301医院最擅长什么)