1、binlog format 启用Row Based Replication(行复制)模式:
SET GLOBAL binlog_format = 'ROW';
如果你想永久的启用这个模式,请修改my.cnf 配置文件:
[mysqld]
binlog_format=ROW
2、在执行你的sql语句前,设置当前会话的隔离级别
SET SESSION TRANSACTION ISOLATION LEVEL READ UNCOMMITTED;
INSERT INTO t1 SELECT ....;
如果以上设置不起作用,那么请把隔离级别设置得更宽松,并且设置成全局隔离级别:
SET GLOBAL TRANSACTION ISOLATION LEVEL READ UNCOMMITTED;
如果你想永久的启用这个模式,请修改my.cnf 配置文件:
[mysqld]
transaction-isolation = READ-UNCOMMITTED
当然,如果你需要更严格的隔离级别,可以使用READ-COMMITTED代替READ-UNCOMMITTED
翻译自:http://stackoverflow.com/questions/2640898/how-to-improve-insert-into-select-locking-behavior
如有出入,请斧正,谢谢。
原创转载请注明:http://www.cnblogs.com/langtianya/p/5533963.html