Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

Thay đổi bảng mà không cần khóa toàn bộ bảng

Câu trả lời ngắn gọn:Đối với MySQL <5,6 khóa là bắt buộc. Từ 5.6 trở đi và sử dụng InnoDB, khóa không bắt buộc đối với nhiều ALTER TABLE các thao tác bao gồm thêm cột .

Nếu bạn đang sử dụng MySQL 5.5 trở lên, nó sẽ nhận được một khóa đọc cho toàn bộ hoạt động và sau đó một khóa ghi ngắn gọn ở cuối.

Từ tài liệu MySQL cho ALTER TABLE ...

Có nghĩa là, khi thêm một cột, cột đó đọc sẽ khóa bảng trong hầu hết các thao tác, sau đó nhận một khóa ghi ở cuối.

MySQL 5.6 đã thêm DDL trực tuyến sang InnoDB giúp tăng tốc và cải thiện nhiều thứ, chẳng hạn như thay đổi bảng và chỉ mục. Việc thêm cột vào bảng sẽ không còn yêu cầu khóa bảng nữa ngoại trừ có thể có các khóa độc quyền ngắn khi bắt đầu và kết thúc hoạt động .

nên xảy ra tự động, nhưng để chắc chắn, hãy đặt ALGORITHM=inplaceLOCK=none vào ALTER TABLE của bạn tuyên bố.

Có một ngoại lệ ...




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Chọn một cột cũng là một từ khóa trong MySQL

  2. Cách chuyển các ký tự chữ hoa thành chữ thường trong MySQL

  3. Nhận thời gian thực thi chính xác của một câu lệnh MySQL

  4. Cách tốt nhất để lưu trữ cơ sở dữ liệu MySQL trực tiếp

  5. Chuyển đổi SQL sang SQL alchemy