Python MySQLdb autocommitがもたらすピットをデフォルトで閉じる

384 ワード

python MYSQLdbはautocommitをデフォルトで閉じ、任意のselect*from user文を実行します.MYSQL 5.5以上のバージョンでは、METADATA LOCKがブロックされます.次のように
select * from user;
alter table user ......;  --    METADATA LOCK
select * from user;     --    METADATA LOCK

結論:
  • select/update/deleteはいずれもトランザクションとして、トランザクションはMETADATA LOCK
  • に出発します.
  • alter tableもMETADATA LOCKを申請しますが、すぐに
  • を釈放します.