2016-02-25 26 views
5

Tôi có một kịch bản và hai tùy chọn để đạt được nó. Cái nào sẽ hiệu quả hơn?Cách hiệu quả để xử lý số lượng lớn dữ liệu trong MySQL

Tôi đang sử dụng mySQL để lưu trữ sự tham dự của sinh viên (khoảng 100 triệu). Và sau đó sử dụng dữ liệu tham dự này để vẽ biểu đồ và kết quả dựa trên lựa chọn của người dùng.

Approach.1) Lưu trữ dữ liệu sự tham gia của sinh viên cho mỗi ngày trong hàng mới (mà sẽ làm tăng số lượng hàng theo cấp số nhân và giảm thời gian xử lý)

Approach.2) cửa hàng serialized hoặc JSON định dạng hàng dữ liệu tham gia của một năm của mỗi học sinh liên tiếp (Điều này sẽ làm tăng thời gian xử lý khi cập nhật tham dự mỗi ngày và giảm kích thước cơ sở dữ liệu)

+2

100k Mà không phải là nhiều – sagi

+0

100k vs 100 nhà máy, đó là một chỉnh sửa lớn! – Shadow

+0

Xin lỗi ... Tôi đã bỏ lỡ điều đó. –

Trả lời

8

Đầu tiên tôi nghĩ rằng bạn bị nhầm lẫn, số hàng sẽ tăng tuyến tính không theo cấp số mũ một sự khác biệt lớn.

Thứ hai 100k không có gì cho cơ sở dữ liệu. ngay cả khi bạn lưu trữ 365 ngày chỉ 36 triệu, tôi có điều đó trong một tuần,

Cửa hàng thứ ba trong JSON có thể phức tạp truy vấn trong tương lai.

Vì vậy, tôi đề nghị đi với phương pháp tiếp cận 1

Sử dụng chỉ mục thích hợp, thiết kế và HDD nhanh có thể xử lý hàng tỷ bản ghi.

Ngoài ra, bạn có thể xem xét lưu dữ liệu lịch sử trong một sơ đồ khác nhau nên dữ liệu hiện nay là nhanh hơn một chút, nhưng đó chỉ là một tuneup nhỏ

Các vấn đề liên quan