Вы неправильно рассматриваете систему чатов.
В чатах есть комнаты, внутри комнат сообщения и участники.
Тет-а-тет это приватная комната с 2-ми участникам.
room
- id
- name
- private
participant (участник чата)
- id
- name
roster (список участников чата)
- room_id
- participant_id
history (история сообщений)
- id
- room_id
- participant_id
- timestamp
- type (тип сообщения, иногда нужны системные сообщения от ботов)
- text
- deleted
А теперь вперед - учить JOIN'ы!
По поводу нагрузки - при правильном проектировании приложения, нагрузка на базу будет минимальной, преимущественно проверки, кто принадлежит к какой комнате и запись в историю.
Сколько-нибудь значимая нагрузка будет при 10к человек онлайн. Поверьте, это очень большая посещаемость.
При большей посещаемости ваша проблема будет решена горизонтальным масштабированием (шардингом БД).