![](https://img-blog.csdnimg.cn/20190927151026427.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
数据库
文章平均质量分 80
数据库应用
随风飘雁
JAVA软件开发
展开
-
mysql为什么要用b+树
一般查询一堆数据会使用到的数据结构是:哈希表、B+树。mysql使用的是B+树。B+树是通过二叉查找树,再由平衡二叉树(B-树)演变而来。但B+树不是二叉树科普:什么叫二叉树⾮叶⼦节点最多拥有两个⼦节点⾮叶⼦节值⼤于左边⼦节点、⼩于右边⼦节点没有值相等重复的节点;二叉树如图:比如:你想找到008,先和006比对,008大于006,则和007比对,一次类推。每一次比对都能排除一半的数据,是不是效率比较高。既然二叉树查询效率比较高,那为啥还需引进平衡二叉树呢?转载 2024-01-16 15:09:59 · 673 阅读 · 0 评论 -
B+树的B+树与B树的区别
2、而b+树有n棵子树的非叶节点有n个关键字,关键字会存储重复。非叶节点只保存关键字,仅包含子树的最大或者最小的关键字,只用来索引,关键字从小到大排列。1、b树查找相当于二分查找,可以在非叶节点结束,且若经常访问的元素离根节点较近,则访问更加迅速。2、b+树所有叶子节点存储内容包含全部的关键字信息,以及指向关键字记录的指针。1、b树每一个关键字有且只出现一次,且所有关键字按照从小到大的顺序进行排列。2、而b+树的查找路径是由根到叶子节点,每次查找路径长度比较稳定。转载 2024-01-16 15:02:05 · 90 阅读 · 0 评论 -
MySQL为什么使用B+树,而不是B树?
在MySQL中,B+树被广泛应用于索引结构,因为它支持高效的范围查询和区间扫描,并且有助于减少磁盘I/O操作,从而提高查询效率。为什么MySQL使用B+树而不是B树?转载 2024-01-16 14:59:04 · 76 阅读 · 0 评论 -
Redis持久化策略
Redis是基于内存操作,作为一个数据库也具备持久化能力,但是为了实现高效的读写操作,并不会及时进行数据的持久化,而是按照一定的规则进行持久化操作的。AOF(Append Only File),当达到设定的触发条件时,将redis执行的写操作指令存储到aof文件中,redis默认是未开启aof持久化的。操作次数越多,触发持久化的时间间隔就越短(防止数据丢失) ,我们可以通过修改redis.conf文件,来设置RDB策略的触发条件。300s 10次: 当操作次数达到10次,300s就会进行持久化。转载 2024-01-15 16:01:26 · 28 阅读 · 0 评论 -
MySQL存储引擎:MyISAM和InnoDB的区别
InnoDB: InnoDB是MySQL的另一种存储引擎,支持事务处理和外键约束等功能,能够保证数据的完整性和一致性。它能够实现高效的数据压缩和存储,但是不支持索引和更新操作,仅支持插入和查询操作。总之,MySQL的存储引擎经历了多年的发展和演进,目前已经形成了多种不同的存储引擎,每种存储引擎都有其独特的特点和应用场景,可以根据实际需求来选择合适的存储引擎。Memory: Memory是MySQL的内存存储引擎,能够快速地读取和写入数据,但是它不支持持久性存储,数据会随着MySQL的重启而丢失。转载 2024-01-15 11:27:13 · 37 阅读 · 0 评论 -
show processlist 详解
是显示用户正在运行的线程,需要注意的是,除了root用户能看到所有正在运行的线程外,其他用户都只能看到自己正在运行的线程,看不到其它用户正在运行的线程。除非单独个这个用户赋予了PROCESS权限。通常我们通过top检查发现mysqlCPU或者iowait过高 那么解决这些问题 都离不开showprocesslist查询当前mysql有些线程正在运行,然后分析其中的参数,找出那些有问题的线程,该kill的kill,该优化的优化!注意:只显示前100条 我们可以通过显示全部。root。转载 2024-01-15 10:17:32 · 996 阅读 · 0 评论 -
sql优化常用的方法
要查询的数据就不能只在索引树里找了,得需要回表操作才能完成查询的工作,再加上是左模糊匹配,无法利用索引树的有序性来快速定位数据,所以得在索引树逐一遍历,获取主键值后,再到聚簇索引树检索到对应的数据行,这样实在太累了。union和union all的差异主要是前者需要将结果集合并后再进行唯一性过滤操作,这就会涉及到排序,增加大量的CPU运算,加大资源消耗及延迟。SQL语句中IN包含的值不应过多,MySQL对于IN做了相应的优化,即将IN中的常量全部存储在一个数组里面,而且这个数组是排好序的。转载 2024-01-10 17:02:28 · 47 阅读 · 0 评论 -
MySQL索引的设计原则
选择索引的最终目的是为了使查询的速度变快,上面给出的原则是最基本的准则,但不能只拘泥于上面的准则。应该在学习和工作中不断的实践,根据应用的实际情况进行分析和判断,选择最合适的索引方式。转载 2024-01-08 16:54:20 · 33 阅读 · 0 评论 -
SQL优化
SQL优化转载 2022-11-09 17:54:59 · 228 阅读 · 0 评论 -
MySQL 面试 15 问
MySQL在面试中经常被问到,本文总结了面试中的经典问题。1. 数据库三大范式是什么?第一范式:每个列都不可以再拆分。第二范式:在第一范式的基础上,非主键列完全依赖于主键,而不能是依赖于主键的一部分。第三范式:在第二范式的基础上,非主键列只依赖于主键,不依赖于其他非主键。在设计数据库结构的时候,要尽量遵守三范式,如果不遵守,必须有足够的理由。比如性能。事实上我们经常会为了性能而妥协数据库的设计。2. mysql有关权限的表都有哪几个?MySQL服务器通过权限表来控制用户对数据库的访问,权限表转载 2022-04-22 09:43:57 · 173 阅读 · 0 评论 -
MySQL优化
原文地址:https://mp.weixin.qq.com/s/WIwgfTeQUYgcobzz0OfL2A一、为什么优化1、随着系统或应用程序的运行,数据会不断的累积,数据量会越来越大,SQL的查询速度也越来越慢。2、系统业务的复杂性,一个操作需要操作多张表,甚至需要跨服务查询,所以查询速度非常重要,也十分影响用户体验。二、如何优化,从哪几方面优化?1、数据库、数据表的设计。2、SQL语句优化。3、建立索引。4、读写分离、复杂均衡、MySQL集群。5、逻辑拆分,将复杂的sql拆分为多步转载 2021-12-22 14:27:18 · 78 阅读 · 0 评论 -
oracle数据库备份与还原完整版
oracle创建用户备份和还原数据库是我们开发人员的必备技能。还原oracle数据库(新建一个数据库及添加一个oracle用户,把数据库备份文件还原到该数据库)。说明备份数据库时查一下用户有哪些权限,新增的用户也分配同样的权限。创建用户并授权create user db_user_name identified by oracledefault tablespace TBS01...原创 2020-05-07 22:13:33 · 599 阅读 · 0 评论