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

Cơn ác mộng cơ sở dữ liệu kế thừa MySQL cuối cùng

Tôi không phải là người sử dụng MySQL, vì vậy, điều này nằm ngoài trường bên trái.

Nhưng tôi nghĩ rằng các tệp nhật ký có thể là câu trả lời.

Rất may, bạn thực sự chỉ cần biết 2 điều từ nhật ký.

Bạn cần bản ghi / rowid và bạn cần thao tác.

Trong hầu hết các DB và tôi giả sử là MySQL, có một cột ẩn trên mỗi hàng, như rowid hoặc recordid, hoặc bất cứ thứ gì. Đó là số hàng nội bộ được cơ sở dữ liệu sử dụng. Đây là khóa chính "miễn phí" của bạn.

Tiếp theo, bạn cần các hoạt động. Đáng chú ý cho dù đó là thao tác chèn, cập nhật hay xóa trên hàng.

Bạn tổng hợp tất cả thông tin này, theo thứ tự thời gian, và sau đó chạy qua nó.

Đối với mỗi lần chèn / cập nhật, bạn chọn hàng từ DB ban đầu của mình và chèn / cập nhật hàng đó trong DB đích của bạn. Nếu đó là một xóa, thì bạn xóa hàng.

Bạn không quan tâm đến các giá trị trường, chúng chỉ là không quan trọng. Làm cả hàng.

Bạn hy vọng không cần phải "phân tích cú pháp" tệp nhật ký nhị phân, MySQL đã phải có các quy trình để làm điều đó, bạn chỉ cần tìm và tìm ra cách sử dụng chúng (thậm chí có thể có một số tiện ích "bản ghi kết xuất" tiện dụng mà bạn có thể sử dụng ).

Điều này cho phép bạn giữ cho hệ thống khá đơn giản và nó chỉ phụ thuộc vào hoạt động thực tế của bạn trong ngày, thay vì tổng kích thước DB. Cuối cùng, sau này bạn có thể tối ưu hóa nó bằng cách làm cho nó "thông minh hơn". Ví dụ:có lẽ họ chèn một hàng, sau đó cập nhật nó, rồi xóa nó. Bạn sẽ biết rằng bạn chỉ có thể bỏ qua hàng đó hoàn toàn trong lần phát lại của mình.

Rõ ràng là điều này cần một chút kiến ​​thức phức tạp để thực sự đọc các tệp nhật ký, nhưng phần còn lại nên đơn giản. Tôi muốn nghĩ rằng các tệp nhật ký cũng được đánh dấu thời gian, vì vậy bạn có thể biết để làm việc trên các hàng "từ hôm nay" hoặc bất kỳ phạm vi ngày nào bạn muố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:Tôi có thể thực hiện phép nối bên trái và chỉ kéo một hàng từ bảng tham gia không?

  2. Máy chủ Mysql trên MAMP sẽ không khởi động

  3. CHAR () Ví dụ trong MySQL

  4. kết nối AngularJS với mysql bằng dịch vụ PHP của tôi?

  5. Cách tốt nhất để lưu trữ một bảng giá lịch sử trong một bảng MySQL là gì?