G
G
Gluck Virtualen2015-12-14 14:24:36
MySQL
Gluck Virtualen, 2015-12-14 14:24:36

Well, how are we going to store chats now?

The question has been chewed many times, but time makes its own adjustments. Under the new legislation, if user-generated-content is used on a resource, the owner is required to store it for six months. This is a given and is not discussed.
The server is so-so, weak. Non-commercial project, it's expensive to show off from your own pocket.
PHP+MySQL engine (in real life the classics always win).
The main InnoDB chat table contains all the rows in the heap:

id // primary
id_channel // приватные или групповые каналы
id_from 
id_to // если канал приватный
text
timestamp

Доступ к нужным строкам — where "id_from | id_to", они оба в индексах.
Таблица заполняется в реалтайме аяксом, тут же обновляется текст чата на клиенте.
Юзеров — 10 000. Сколько текста они нагенерят за полгода — одному аллаху известно.
Нагрузочного тестирования пока не было — чат только-только прикручивается. Но что-то мне подсказывает, что тысячу одновременных хитов эта конструкция не выдержит, а их может быть и больше...
Что делать, бразы?
Делить таблицу на приватные/групповые?
Время от времени скидывать таблицу в архив?
...а эту тем временем держать в MEMORY?
Создавать таблицу-прокладку для скорейшего доступа?
Еще что-то упустил?

Answer the question

In order to leave comments, you need to log in

Didn't find what you were looking for?

Ask your question

Ask a Question

731 491 924 answers to any question