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

Ngăn đọc khi cập nhật bảng

Giả sử bạn sử dụng công cụ giao dịch (Thường là Innodb), hãy xóa và điền vào bảng trong cùng một giao dịch.

Đảm bảo rằng người đọc của bạn sử dụng cấp độ cách ly giao dịch READ_COMMITTED trở lên (mặc định là REPEATABLE READ, cấp độ này cao hơn).

Bằng cách đó, người đọc sẽ tiếp tục có thể đọc nội dung cũ của bảng trong quá trình cập nhật.

Có một số điều cần cẩn thận:

  • Nếu bảng lớn đến mức làm cạn vùng khôi phục - điều này có thể thực hiện được nếu bạn cập nhật toàn bộ (giả sử) bảng 1 triệu hàng. Tất nhiên điều này có thể điều chỉnh được nhưng có giới hạn
  • Nếu giao dịch không thành công một phần và được khôi phục - việc khôi phục các giao dịch lớn là RẤT kém hiệu quả trong InnoDB (nó được tối ưu hóa cho các cam kết, không phải hoàn lại)
  • Hãy cẩn thận với các trường hợp bế tắc và khóa thời gian chờ, điều này có nhiều khả năng xảy ra nếu bạn sử dụng các giao dịch lớn.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Không thể cài đặt mysql-connector-python trong virtualenv

  2. Làm cách nào để tôi có thể lặp qua tất cả các hàng của bảng? (MySQL)

  3. Kết hợp điều kiện từ hai cột mysql

  4. Có thể kết nối ứng dụng Android của tôi với cơ sở dữ liệu mysql với PHP không.?

  5. MySQL / Lỗi tệp ghi (Errcode 28) khi tạo cơ sở dữ liệu