GreatSQL社区

搜索

[已解决] mysql中online ddl 问题

455 5 2023-8-9 13:16
本帖最后由 jian.tang 于 2023-8-9 13:25 编辑

会话1开启一个事务并update。


会话2 添加一个索引:


会话3不能进行select


就因为第一个会话有个dml SHARED_WRITE的锁,然后第二个会话是 mdl EXCLUSIVE的锁,第一和第二冲突。第三个会话是mdl SHARED_READ 和第二个冲突了。所以会话3不能select。但是在oralce下pg写如果都加了online 和concurrently 就不会阻塞后面的会话3进行dml以及最基本的select。mysql有什么办法处理吗?


下面的图是mysql官方文档中的:看兼容性矩阵的意思是说创建二级索引,是支持并发dml的吗?能否给个测试用户。谢谢




全部回复(5)
jian.tang 2024-1-9 10:13:02
铎铎是只猫 发表于 2023-8-11 08:03
Online DDL并不是让你随时随地地可以更新表结构,也还是有限制的。mdl是为了解决DDL操作和DML操作之间操作 ...

select 都加mdl锁,这个在pg 和oracle 中都没有的。所以很纳闷。
jian.tang

4

主题

0

博客

16

贡献

新手上路

Rank: 1

积分
25

合作电话:010-64087828

社区邮箱:greatsql@greatdb.com

社区公众号
社区小助手
QQ群
GMT+8, 2024-5-20 00:50 , Processed in 0.023138 second(s), 11 queries , Redis On.
快速回复 返回顶部 返回列表