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

MySQL cập nhật toàn bộ cơ sở dữ liệu mà không cần thời gian chết

Đây là một cái gì đó mà tôi làm. Nó không dẫn đến thời gian chết bằng 0 nhưng có thể kết thúc trong vòng chưa đầy một giây.

Tạo cơ sở dữ liệu chỉ có các phần tử giao diện với cơ sở dữ liệu thực của bạn. Trong trường hợp của tôi, nó chỉ chứa các định nghĩa về chế độ xem và tất cả các truy vấn của người dùng đều đi qua cơ sở dữ liệu này.

Tạo một cơ sở dữ liệu mới mỗi đêm. Khi hoàn tất, hãy cập nhật các định nghĩa dạng xem để tham chiếu đến cơ sở dữ liệu mới. Tôi khuyên bạn nên tắt quyền truy cập của người dùng vào cơ sở dữ liệu có chứa các chế độ xem trong khi bạn đang cập nhật chúng hoặc xóa tất cả các chế độ xem và tạo lại chúng - điều này ngăn cản quyền truy cập một phần vào cơ sở dữ liệu cũ. Vì việc tạo chế độ xem diễn ra nhanh chóng nên đây sẽ là một thao tác rất nhanh.

Chúng tôi làm tất cả những điều này thông qua một công việc. Trên thực tế, trước khi thay đổi chế độ xem sản xuất, chúng tôi kiểm tra việc tạo chế độ xem trên cơ sở dữ liệu khác để đảm bảo chúng đều hoạt động.

Rõ ràng, nếu bạn sử dụng alter view thay vì yêu cầu sự nhất quán trên tất cả các chế độ xem, thì sẽ không có thời gian chết, chỉ là một khoảng thời gian ngắn không nhất quá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. MySQL Exception - Gặp phải lỗi nghiêm trọng trong quá trình đọc dữ liệu

  2. Sử dụng Cơ sở dữ liệu quan hệ MySQL trên Arch Linux

  3. Giá trị mặc định của MySQL 5.5 &5.6

  4. viết lại url cho tên sản phẩm

  5. Làm cách nào để xác định một cột có thể tự động viết hoa?