Bạn nói đúng, bàn lớn như vậy không sử dụng được. Nếu bạn cần một hệ thống lưu giữ thông báo thực sự, hãy xem xét các giải pháp NoSQL (như HBase, Cassandra, MongoDB, v.v.), bạn sẽ phải quên bất cứ điều gì bạn biết về cơ sở dữ liệu quan hệ.
Với MySQL, bạn vẫn có thể làm điều gì đó có thể mở rộng nếu chia bảng thành các phần rất nhỏ. Tạo một bảng lưu giữ các tin nhắn của tối đa 1k người dùng (bạn sẽ cần phải viết tất cả các tin nhắn hai lần trừ khi cả hai người dùng ở cùng một bảng). Ngoài ra, hãy giữ không quá 1k bảng trong một DB, tự động tạo một bảng khác khi đạt đến giới hạn này. Có nhiều cơ sở dữ liệu (ngay cả trên một máy chủ vật lý) sẽ giúp DBA dễ dàng chuyển từng cơ sở dữ liệu sang một máy chủ mới khi máy chủ hiện tại trở nên quá tải. Để nhận thông báo của một người dùng nhất định, mã của bạn sẽ phải lấy DB / bảng cần thiết từ bản đồ mà bạn sẽ có.