Mysql
 sql >> база данни >  >> RDS >> Mysql

Променете масата, без да заключвате цялата маса

Кратък отговор:За MySQL <5.6 са необходими заключвания. От 5.6 нататък и с помощта на InnoDB ключва не са необходими за много ALTER TABLE операции, включително добавяне на колона .

Ако използвате MySQL 5.5 или по-стара версия, той ще получи заключване за четене за цялата операция и след това за кратко заключване на запис в края.

От документацията на MySQL за ALTER TABLE ...

Което означава, че при добавяне на колона тя четене заключва таблицата за по-голямата част от операцията, след което получава заключване на запис в края.

MySQL 5.6 добави Онлайн DDL към InnoDB, което ускорява и подобрява много неща, като например промяна на таблици и индекси. Добавянето на колона към таблица вече няма да изисква заключвания на таблица освен евентуално кратки изключителни заключвания в началото и в края на операцията .

Това трябва се случва автоматично, но за да сте сигурни, задайте ALGORITHM=inplace и LOCK=none към вашата ALTER TABLE изявление.

Има едно изключение...




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. подсистема на windows инсталирайте mysql сървър

  2. MySQL:LIMIT с процент от количеството записи?

  3. Неочаквани резултати от MySQL:IN-клауза (число, 'низ') в колона с varchar

  4. Как мога да имам планирани събития в MySQL log?

  5. Как групово да актуализирате mysql данни с една заявка?