
Mysql
KlayLee
软件工程学生
展开
-
Mysql的事务并发问题和隔离级别
事务的四大特性 ACID就是事务的四大特性,它们分别是原子性(Atomic)、一致性(Consistency)、隔离性(Isolation)、持久性(Durability) 原子性:数据库中的每个事务都是不能再次分割的,要么一起操作成功,要么一起操作失败回滚,不能出现一个事务中一句执行成功了而另外一句没有执行成功的情况 一致性:一致性是指数据库中的事务从一种状态变到另外一种状态,而数据库的完整性没有被破坏。比如A和B的总金额是2000元,无论A和B之间发生怎么样的交易,它们的总金额仍然是2000元 隔离性原创 2020-07-28 12:27:07 · 397 阅读 · 0 评论 -
InnoDB和MyISAM的锁的区别和联系
InnoDB和MyISAM的锁 InnoDB和MyISAM的行表锁 InnoDB默认是行级锁,支持表锁,也就在InnoDB中更新某条数据会对行上锁,如果是排他锁,那么其他的事务访问这一行的数据需要等锁释放之后才能进行,而对其他行数据是没有影响的。 MyISAM默认是表级锁,不支持行级锁,也就是在MyISAM中进行某条数据更新时,会对整个表上锁,所有的其他事务对表中对数据进行访问或者更新的时候都必须等那个事务释放表锁。 需要注意的是,当InnoDB不走索引的时候,就会默认上表级锁了。 InnoDB和MyISA原创 2020-07-27 20:46:11 · 433 阅读 · 0 评论 -
InnoDB的索引概念以及慢查询优化
聚簇索引 之前的文章介绍了B+树的概念以及由来。聚簇索引就是按照每张表的主键创建一颗B+树,同时叶子节点中存放的是对应的主键的行数据,所以B+树中的数据也是聚簇索引的一部分,因为我们不能创建两个有相同数据的B+树(这样会很浪费硬盘空间)所以每张表只能拥有一个聚簇索引。 在大多数情况下,查询优化器都会偏向于使用聚簇索引,因为使用聚簇索引访问到的叶子节点直接是我们需要的数据。 非聚簇索引 非聚簇索引是在聚簇索引之外建立的索引,它的叶子节点不存储对应行的数据,而是存储对应的主键,所以在使用非聚簇索引获取到主键值之原创 2020-07-27 19:14:59 · 155 阅读 · 0 评论 -
从二叉树到B+树简单分析为什么Mysql选择B+树作为索引
二叉树 二叉树是一种特殊的树状结果,它每个节点都只有左孩子和右孩子,每个节点的左孩子都比它的值要小,而每个节点的右孩子都比它的值要大。 所以当我们想要查找某个元素的时候,只需要按照它的左右孩子大小关系进行查找即可。 比如在以下树中搜索4的时候: 首先访问根节点,根节点为5,5>4,所以访问5的左孩子。 访问3,3<4,所以访问3的右孩子 访问4,我们就找到了我们需要找的值 5 / \ 3 8 / \ \ 1 4 10原创 2020-07-27 16:09:12 · 249 阅读 · 0 评论