Mysql

MySQL INSERT … SELECT 性能

  • September 14, 2017

我知道這個查詢會鎖定table2

UPDATE table1... SELECT .. FROM table2

這個查詢怎麼樣?

INSERT INTO table1... SELECT .. FROM table2

此查詢是否還會創建鎖定table2

你剛問

做:

INSERT INTO table1... SELECT .. FROM table2

還在table2上創建一個鎖?

是的,它確實會在table2.

我早在 2014 年 8 月 8 日就寫過關於這種行為的文章(請參閱我對MySQL 一致非鎖定讀取與 INSERT … SELECT的回答)在我的舊文章中,我從 MySQL 文件中提到:

預設情況下,InnoDB 使用更強的鎖,並且 SELECT 部分的行為類似於 READ COMMITTED,其中每個一致的讀取,即使在同一個事務中,設置並讀取自己的新快照

引用自:https://dba.stackexchange.com/questions/136429