![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
MySQL
我叫程序猿
致力于让解题速度超过LeetCode更新速度
展开
-
史上最全的超详细理解MVCC(多版本并发控制)
1.介绍MVCC(Multi Version Concurrency Control),中文名是多版本并发控制, MVCC在MySQL InnoDB中的实现主要是为了提高数据库并发性能,用更好的方式去处理读-写冲突,做到即使有读写冲突时,也能做到不加锁,非阻塞并发读。简单来说就是通过维护数据历史版本,从而解决并发访问情况下的读一致性问题。2.实现原理它的实现原理主要是依赖记录中的 3个隐式字段,undo日志 ,Read View 来实现的。通常数据库中的每行记录除了我们自定义的字段外,还有数据库隐式原创 2021-05-25 16:15:15 · 908 阅读 · 1 评论 -
你知道的MySQL的索引类型,并分别简述一下各自的场景?
普通索引:没有任何限制条件的索引,该索引可以在任何数据类型中创建。唯一索引:使用UNIQUE参数可以设置唯一索引。创建该索引时,索引列的值必须唯一,但允许有空值。通过唯一索引,用户可以快速地定位某条记录,主键索引是一种特殊的唯一索引。 如果是组合索引,则列值的组合必须唯一。【主键索引 是一种特殊的唯一索引,一个表只能有一个主键,不允许有空值。一般是在建表的时候同时创建主键索引】复合索引(联合索引): 指多个字段上创建的索引,只有在查询条件中使用了创建索引时的第一个字段,索引才会被使用。使用组合索引时遵循原创 2021-04-30 09:26:35 · 237 阅读 · 0 评论 -
MySQL建索引需要遵循哪些原则呢
1.选择唯一性索引唯一性索引的值是唯一的,可以更快速的通过该索引来确定某条记录。例如,学生表中学号是具有唯一性的字段。为该字段建立唯一性索引可以很快的确定某个学生的信息。如果使用姓名的话,可能存在同名现象,从而降低查询速度。b经常需要ORDER BY、GROUP BY、DISTINCT和UNION等操作的字段,排序操作会浪费很多时间。如果为其建立索引,可以有效地避免排序操作。3.为常作为查询条件的字段建立索引如果某个字段经常用来做查询条件,那么该字段的查询速度会影响整个表的查询速度。因此,为这样的原创 2021-04-30 09:24:32 · 141 阅读 · 0 评论 -
为什么B+树比B树更适合做数据库索引?
B+树更适合外部存储。由于内结点不存放真正的数据(只是存放其子树的最大或最小的关键字,作为索引),一个结点可以存储更多的关键字,每个结点能索引的范围更大更精确,也意味着B+树单次磁盘IO的信息量大于B树,I/O的次数相对减少。MySQL是一种关系型数据库,区间访问是常见的一种情况,B+树叶结点增加的链指针,加强了区间访问性,可使用在区间查询的场景;而使用B树则无法进行区间查找。数据库索引采用B+树的主要原因是B树在提高了磁盘IO性能的同时并没有解决元素遍历的效率低下的问题。正是为了解决这个问..原创 2021-04-22 16:47:08 · 376 阅读 · 0 评论 -
为什么平衡二叉树不适合作为索引
索引是存在于索引文件中,是一种数据结构,存在于磁盘中的。因为索引通常是很大的,因此无法一次将全部索引加载到内存当中,因此每次只能从磁盘中读取一个磁盘页的数据到内存中。而这个磁盘的读取的速度较内存中的读取速度而言是差了好几个级别。平衡二叉树结构,指的是逻辑结构上的平衡二叉树,其物理实现是数组。然后由于在逻辑结构上相近的节点在物理结构上可能会差很远。因此,每次读取的磁盘页的数据中有许多是用不上的。因此,查找过程中要进行许多次的磁盘读取操作。而适合作为索引的结构应该是尽可能少的执行磁盘IO操作,因..原创 2021-04-22 16:45:20 · 354 阅读 · 0 评论 -
MySQL数据库重点知识点总结归纳。10分钟了解MySQL
主键:对于关系表,有个很重要的约束,就是任意两条记录不能重复。不能重复不是指两条记录不完全相同,而是指能够通过某个字段唯一区分出不同的记录,这个字段被称为主键。主键也不允许使用NULL。选取主键的一个基本原则是:不使用任何业务相关的字段作为主键。联合主键关系数据库实际上还允许通过多个字段唯一标识记录,即两个或更多的字段都设置为主键,这种主键被称为联合主键。外键在一个表中,通过非主键的另外一个字段,可以将数据和另一张表链接起来,这种列称为外键。通过定义外键约束,关系数据库可以保证无法插..原创 2021-03-31 09:12:13 · 335 阅读 · 0 评论