我正在使用mysql 5.5, 当我执行查询时会发生什么:
Insert into A select * from B ;
同时其他进程将记录插入表B? InnoDB可以处理这种情况吗?这些表将在执行结束时同步吗?
谢谢!
答案 0 :(得分:0)
引用Locks Set by Different SQL Statements in InnoDB
的Mysql文档INSERT INTO T SELECT ... FROM S WHERE ...设置独占索引 在插入T的每一行上没有间隙锁定的记录。如果 启用innodb_locks_unsafe_for_binlog和事务 隔离级别不是SERIALIZABLE,InnoDB在S上进行搜索 一致读(无锁)。否则,InnoDB设置共享的下一个密钥 锁定来自S.的InnoDB必须在后一种情况下设置锁定:In 从备份前滚恢复,每个SQL语句必须是 以与原先完成相同的方式执行。
答案 1 :(得分:0)
没有
即使它们在INSERT
之后同步,新插入也会很快使它们不同步。
您的真实目标是什么?