Sử dụng một bảng như bạn đang có. MySQL có thể dễ dàng xử lý hàng tỷ hoặc hàng dữ liệu. Với một số chỉ số tốt, hiệu suất của bạn cũng sẽ khá tốt.
Điều đó không có nghĩa là bạn không nên tìm cách đảm bảo rằng bạn có thiết kế bảng tốt, nhưng bạn cũng không nên lo lắng về việc xử lý những gì bạn nghĩ có thể là vô số dữ liệu - trong khi thực tế, nó có khả năng giảm đại dương tập dữ liệu.
Số lượng cột thực sự không tạo ra quá nhiều khác biệt, kích thước hàng có thể làm tăng thời gian ổ cứng truy cập chúng (theo một vài bài báo tôi đã đọc) nhưng đồng thời, bạn sẽ phải có THỰC SỰ là hàng lớn để thực sự nhận thấy sự khác biệt qua hàng nghìn truy vấn.
Đối với cấu trúc tốt, nó thực sự phụ thuộc vào CÁCH bạn sẽ cần sử dụng nó. Nếu bạn sẽ thực hiện nhiều hàm tổng hợp khác nhau, hãy đảm bảo rằng bạn có một bảng cho phép thực hiện nó. Nếu bạn chỉ cần một vài truy vấn cụ thể, thì tốt hơn là bạn nên tạo một bảng báo cáo cụ thể để tổng hợp dữ liệu nói một lần mỗi ngày.
Chỉnh sửa:Ghi chú về giới hạn thực tế đối với số hàng:
http://dev.mysql.com/doc /refman/5.1/en/source-configuration-options.html
Công cụ lưu trữ MyISAM hỗ trợ 2 ^ 32 hàng trên mỗi bảng, nhưng bạn có thể xây dựng MySQL với tùy chọn --with-big -boards để hỗ trợ tối đa 2 ^ 64 hàng trên mỗi bảng.
http://dev.mysql.com/doc/refman /5.1/en/innodb-restrictions.html
Công cụ lưu trữ InnoDB dường như không có giới hạn về số hàng, nhưng nó có giới hạn về kích thước bảng là 64 địa hình. Có bao nhiêu hàng phù hợp với điều này phụ thuộc vào kích thước của mỗi hàng.