MySQL
BoscoKuo
言念君子,温其如玉。
展开
-
关于MySQL可重复读的理解
(一)问题引入 描述问题之前,先理解一下两种锁的概念。 共享锁(S锁):如果事务T对数据A加上共享锁后,则其他事务只能对A再加共享锁,不能加排他锁。获准共享锁的事务只能读数据,不能修改数据。 排它锁(X锁):如果事务T对数据A加上排他锁后,则其他事务不能再对A加任任何类型的封锁。获准排他锁的事务既能读数据,又能修改数据。 共享锁和排他锁都属于悲观锁。排他锁又可以可以分为行锁和表锁。 MySQL常...原创 2019-08-07 14:26:00 · 22789 阅读 · 18 评论 -
深入浅出MySQL索引(一)
1 问题引入 首先,笔者在这里明确一点:处理数据都是在内存中进行的,考虑得都是内存中的时间复杂度。 如果我们要操作的数据集非常大,大到内存已经没法处理了怎么办?比如数据库表里面上千万条记录。在这种情况下,对数据的处理需要不断从硬盘等存储设备中调入或者调出内存页面。 一旦涉及到外部存储设备,关于时间复杂度的计算就会发生很大变化。试想一下,为了要在一个拥有几十万个文件的磁盘里面中查找一个文本文件,读取...原创 2019-09-23 16:19:05 · 306 阅读 · 0 评论 -
深入浅出MySQL索引(二)
1 覆盖索引 1.1 回表 先搜索二级索引(非主键索引),找到主键,再到主键索引树的过程,称为回表。 1.2 问题导入 在下面这个表T中,如果我执行 select * from T where k between 3 and 5,需要执行几次树的搜索操作,会扫描多少行? create table T ( id int primary key, k int NOT NULL DEFAULT 0, ...原创 2019-09-24 10:38:58 · 230 阅读 · 0 评论