例如: 表 1: id name addr 1 zhangsan xxx 2 lisi xxx 3 wangwu xxx
将进行 delete 操作: delete from 表 1 where id=3; 数据库会进行什么操作?
是全表扫描一列一列的对比?生成的 binlog 会是什么样呢?
![]() | 1 banxi1988 2019-02-14 10:35:25 +08:00 ![]() 其实你没有设置主键,MySQL 内部也会维护一个跟主键类似的东西。 |
![]() | 2 wd 2019-02-14 13:45:20 +08:00 via iPhone 全表扫描 一行一行比 |
3 keepmovingbuddy 2019-02-14 16:08:34 +08:00 用 explain 命令执行一下就知道数据库具体怎么执行你的命令了 |
![]() | 7 msg7086 2019-02-14 22:39:30 +08:00 已经定位到某一行了还比什么?直接删掉这行啊! |
![]() | 8 c4f36e5766583218 2019-02-22 18:57:21 +08:00 @yaoweber 你不是写了 where id=3 ?(读取一行判断 id=3,删除,继续下一行 |