Mysql
文章平均质量分 91
星星泡个饭
是喜欢那!
展开
-
Mysql的锁
目录MySQL加锁的目的是什么MySQL的锁是基于什么实现的并发事务访问相同记录读读情况写写情况读写情况MySQL加锁的目的是什么数据库的锁是为了解决事务的隔离性问题,为了让事务之间相互不影响,每个事务进行操作的时候都会对数据加上一把特有的锁,防止其他事务同时操作数据。MySQL的锁是基于什么实现的数据库里面的锁是基于索引实现的,在Innodb中我们的锁都是作用在索引上面的,当我们的SQL命中索引时,那么锁住的就是命中条件内的索引节点(行锁),如果没有命中索引的话,那我们锁的就是整个索引树(表锁)原创 2022-05-22 10:41:52 · 439 阅读 · 0 评论 -
Mysql之MVCC
目录什么是 MVCCMVCC 的实现原理面试题之:MVCC能否解决幻读?什么是 MVCCMVCC, 即多版本并发控制。MVCC 的实现,是通过**保存数据在某个时间点的快照来实现的**。根据事务开始的时间不同,每个事务对同一张表,同一时刻看到的数据可能是不一样的。MVCC 的实现原理对于 InnoDB ,聚簇索引记录中包含 3 个隐藏的列:ROW ID:隐藏的自增 ID,如果表没有主键,InnoDB 会自动按 ROW ID 产生一个聚集索引树。事务 ID:记录最后一次修改该记录的事务 ID。原创 2022-05-15 13:59:37 · 960 阅读 · 0 评论 -
Innodb 引擎和 Myisam 引擎对索引的实现
目录写在前面——索引类型主键索引唯一索引常规索引全文索引Innodb 引擎和 Myisam 引擎对索引的实现底层分析MyISAM 引擎的底层实现(非聚集索引方式)Innodb 引擎的底层实现(聚集索引方式、非聚集索引)为什么 InnoDB 只在主键索引树的叶子节点存储了具体数据,但是其他索引树却不存具体数据呢,而要多此一举先找到主键,再在主键索引树找到对应的数据呢?为什么InnoDB 和MyISAM 对比,MyISAM 查询性能更好?写在前面——索引类型在MySQL数据库,将索引的具体类型主要分为以下几原创 2022-05-09 23:02:14 · 863 阅读 · 0 评论 -
mysql的索引结构为什么选用B+树?
问题:为什么索引结构默认使用B+Tree,而不是B-Tree,Hash,二叉树,红黑树?哈希表哈希表可以进行数据的快速检索。哈希表会使用哈希算法。哈希算法:也叫散列算法,就是把任意值(key)通过哈希函数变换为固定长度的 key 地址,通过这个地址进行数据查询的数据结构。算法时间复杂度分析来看,哈希算法时间复杂度为 O(1),检索速度非常快。比如查找 id=7 的数据,哈希索引只需要计算一次就可以获取到对应的数据,检索速度非常快。但是 Mysql 并没有采取哈希作为其底层算法。即hash算法针对原创 2022-02-18 20:04:41 · 712 阅读 · 0 评论