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

Số lượng lớn các cột trong Cơ sở dữ liệu MySQL

Được rồi, tôi thấy phép biện chứng của bạn và trong trường hợp (có lẽ là trong thời gian ngắn) không có chuyên gia cơ sở dữ liệu, tôi sẽ cho bạn ý kiến ​​của tôi.

Vì lợi ích của sự tỉnh táo, hãy chia nhỏ dữ liệu của bạn. Giả sử bạn đang lưu trữ thông tin về mọi người. Bạn không cần 200 cột trong 1 bảng. Bạn nên chia chúng ra và có nhiều cột trong nhiều bảng. ví dụ:

tblGeneralCharacteristics:
 - colEyeColor
 - colHairColor
 - colHeight
 - colWeight

tblInterests:
 - colFaveColor
 - colFaveSport

tblRelationships
 - colMother
 - colFather
 - colBrother
 - colSister

Cách này tốt hơn nhiều. Về mặt tính toán, tôi nghi ngờ nó có nhiều vấn đề. Rõ ràng là với mỗi truy vấn, bạn sẽ lấy lại ít dữ liệu hơn, vì vậy đối với một số báo cáo (nơi bạn có thể không cần lấy tất cả dữ liệu hoặc duyệt qua tất cả dữ liệu) thì có thể nhanh hơn (mặc dù nếu bạn lập chỉ mục cơ sở dữ liệu đúng cách thì nó sẽ không không thành vấn đề).

Cho vấn đề tiếp theo. Đó là số lượng bản ghi trong cơ sở dữ liệu. Nếu 10.000 bắt đầu lớn hơn một chút, thì đã đến lúc bắt đầu lưu vào bộ nhớ đệm.

Bây giờ, theo như tôi lo ngại, không có cách nào đúng hay sai để lưu dữ liệu vào bộ nhớ cache. Những gì bạn cần là những gì bạn cần. Vì vậy, ví dụ:trong câu hỏi của bạn, bạn đã đề cập đến việc lấy chiều cao trung bình cho cân nặng cho đầu vào hồ sơ giữa tháng 1 và tháng 3 năm 2012. Chà ... bạn có thể viết một tập lệnh cron để tính toán chiều cao trung bình cho cân nặng cho tất cả các bản ghi đầu vào trong tháng đó và lưu trữ ở một bảng khác ở đâu đó. Sau đó, khi bạn tạo báo cáo của mình, bạn chỉ cần lấy các giá trị cho tháng 1, tháng 2 và tháng 3 và lấy trung bình chúng ... điều đó dễ dàng hơn nhiều. Thay vì thực hiện truy vấn tính toán trên hàng nghìn hàng tiềm năng, bạn đang thực hiện truy vấn cron (không quan trọng thời gian mất bao lâu) trên vài trăm hàng và sau đó báo cáo thực tế chỉ truy vấn 3 hàng.

Một mẹo khác là, bạn càng có thể thực hiện nhiều phép tính trong SQL thì càng tốt. Nếu bạn muốn tính trung bình các trường / bản ghi hoặc tổng một cái gì đó thì hãy gửi nó bằng truy vấn SQL của bạn. Máy chủ SQL sẽ thực hiện tính toán và trả về kết quả, thay vì trả lại cho bạn một lượng lớn dữ liệu để sàng lọc. Tôi biết điều này không phải lúc nào cũng dễ dàng / hữu ích, nhưng bạn càng có nhiều SQL để làm tốt hơn.

Hi vọng điêu nay co ich. Giống như tôi đã nói, tôi chắc chắn rằng một chuyên gia cơ sở dữ liệu đang muốn cung cấp cho bạn một số lời khuyên sâu sắc hơ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. Làm thế nào để khôi phục cơ sở dữ liệu MySQL từ WAMP?

  2. Tham gia bên trong laravel 5.2

  3. Nhập dữ liệu từ MySQL với Sqoop - Lỗi:Không có trình quản lý cho chuỗi kết nối

  4. Cơ sở dữ liệu trống trong MySQL và PHP?

  5. Thực hiện tăng tự động điền vào số đã xóa trước đó