
mysql
adream307
这个作者很懒,什么都没留下…
展开
-
mysql 和 TiDB 在 snapshot 隔离级别上的区别
如果一个事务包含多条 SQL 语句,在 snapshot 隔离级别上,mysql 并不是事务开始的时候获得一个 snapshot 而是在执行第一条 SQL 语句的时候获得 snapshot 的; 而 TiDB 是在事务开始的时候获得一个 snapshot参考 https://pingcap.com/blog-cn/tikv-source-code-reading-12/ TiDB 在事务开始的时候从 PD 获得一个 start_TS,这个 start_TS 就标记一个 snapshot启动 mysql原创 2020-12-22 12:08:38 · 396 阅读 · 0 评论 -
[SQL] 将子查询改写成hash join
这个是当时给新员工做培训时,我认为最难的一条 SQL语句原始 SQL 语句select A.a1from Awhere A.a2 > ( select max(B.b1) from B where B.b2= A.a3);很多人看到这条语句时,表示不知道这条语句在干什么,这里简单解释一下:从表A中取出一行,记为 ax1,ax2,ax3根据ax3的值,在表B中删选出所有满足 B.b2==ax3在第2步筛选出的表B的所有行中,选出 B.b1 的最大值,记为 maxB1根据第1原创 2020-12-12 10:30:58 · 274 阅读 · 0 评论 -
MySQL的隔离性测试
在阅读本文前,请思考以下分别输出什么操作序列1在数据库中存入 A=1Client1启动一个事物T1Client2启动一个事物T2Client1 读取 A 的值 X1Client2设置 A=2Client2提交事物T2Client1 读取 A 的值 X2Client1提交事物T1Client1 读取 A 的值 X3请问 X1 X2 X3 分别为什么值?操作序列2在数据库中存入 A=1Client1启动一个事物T1Client2启动一个事物T2Client2设置 A=2C原创 2020-09-17 16:14:54 · 215 阅读 · 0 评论