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 · 375 阅读 · 0 评论 -
[SQL] 将子查询改写成hash join
这个是当时给新员工做培训时,我认为最难的一条 SQL语句 原始 SQL 语句 select A.a1 from A where 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 · 257 阅读 · 0 评论 -
MySQL的隔离性测试
在阅读本文前,请思考以下分别输出什么 操作序列1 在数据库中存入 A=1 Client1启动一个事物T1 Client2启动一个事物T2 Client1 读取 A 的值 X1 Client2设置 A=2 Client2提交事物T2 Client1 读取 A 的值 X2 Client1提交事物T1 Client1 读取 A 的值 X3 请问 X1 X2 X3 分别为什么值? 操作序列2 在数据库中存入 A=1 Client1启动一个事物T1 Client2启动一个事物T2 Client2设置 A=2 C原创 2020-09-17 16:14:54 · 203 阅读 · 0 评论