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

Làm thế nào lớn là quá lớn cho một bảng MySQL?

Không có một giải pháp chung nào tuyệt vời cho câu hỏi "Bao nhiêu là quá lớn" - những mối quan tâm như vậy thường phụ thuộc vào những gì bạn đang làm với dữ liệu của mình và những cân nhắc về hiệu suất của bạn.

Có một số giới hạn cơ bản về kích thước bảng. Bạn không thể có nhiều hơn 1000 cột. Mỗi bản ghi của bạn không được lớn hơn 8k. Các giới hạn này thay đổi tùy thuộc vào công cụ cơ sở dữ liệu. (Những cái ở đây dành cho InnoDB.)

Có vẻ như bạn đã hợp nhất nhiều tập dữ liệu khác nhau thành một bảng. Bạn có thể có một số trường cho bạn biết tập dữ liệu này liên quan đến bản ghi nào, cùng với một số trường dữ liệu và một số thông tin về dấu thời gian. Đó không phải là một bản ghi quá rộng (trừ khi bạn đang ghi nhật ký, chẳng hạn như tất cả các thông số đầu vào của mỗi yêu cầu.) Vấn đề chính của bạn sẽ là với tính chọn lọc . Lập chỉ mục bảng này theo một cách có ý nghĩa sẽ là một thách thức. Nếu các trường phổ biến của bạn có thể đủ chọn lọc để bạn có thể sử dụng chúng để truy cập các bản ghi mà bạn muốn mà không cần tham khảo bảng, đó sẽ là một điểm cộng rất lớn. (Cf. quét bảng)

Đối với nhiều bản ghi mỗi ngày (về cơ bản, hai giây mỗi ngày và tôi cho rằng bạn có khoảng thời gian tải cao nhất mà nó cao hơn nhiều), bạn cũng sẽ muốn đảm bảo rằng bạn xem xét cụ thể các tối ưu hóa trên cải thiện tốc độ chèn . Theo nguyên tắc chung, nhiều chỉ mục hơn =chèn chậm hơn. Nếu bạn có thể, hãy xem xét lưu trữ hoàn toàn các bản ghi đã lỗi thời sang một bảng khác. Ở những nơi làm việc trước đây, chúng tôi đã sử dụng chiến lược lưu trữ của Tháng trước, Ba tháng trước, Sáu tháng trước, mỗi nơi trong các bảng riêng biệt. Một ý tưởng khác là xóa các bản ghi cũ hơn. Nhiều môi trường chỉ đơn giản là không cần thông tin quá một ngày nhất định. Việc lưu lại các bản ghi từ ba tháng trước thường quá đắt.

Cuối cùng, đừng bỏ qua bộ nhớ vật lý trong bảng của bạn. Hồ sơ của bạn càng mỏng thì IO vật lý càng ít cần xảy ra để đọc (hoặc vì vấn đề đó, để chèn) bản ghi. Bạn có thể lưu trữ các chỉ mục của mình trên một ổ cứng vật lý riêng biệt. Nếu có nhiều dữ liệu dư thừa trong hồ sơ của bạn, lưu trữ bảng được nén thực sự có thể làm tăng tốc độ. Nếu bạn có một ít tiền để đốt, hãy xem xét giá trị của một mảng RAID tốt để tách dữ liệu của bạn.

Vì vậy, để trả lời câu hỏi cơ bản của bạn:đó là rất nhiều bản ghi, nhưng với con mắt cẩn thận trong việc điều chỉnh, nó sẽ không thành vấ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. Nhanh hơn để ngẫu nhiên nhiều kết quả trên MySQL Server hoặc trong PHP

  2. Tạo người dùng MySQL trên Linux qua Dòng lệnh

  3. lớp không tìm thấy ngoại lệ com.mysql.jdbc.driver

  4. Cập nhật nhiều cột từ truy vấn con

  5. Cách kiểm tra giá trị null cho một mã kép được lấy từ cơ sở dữ liệu