Здравствуйте. Возникла необходимость написания чата. Как адекватный человек я задумался над основой до того, как начать писать.
Кто в теме хотелось бы услышать советы. Что лучше использовать? Базу или файлы? Файлы быстрее ввиду того, что нет тяжёлых запросов, из файла достаточно достать массив, это очень быстро. Историю чата можно постоянно подчищать, посчитав количество строк и удаляя из конца ненужные. Одновременную работу с файлом можно реализовать с помощью промежуточного файла. Для каждого юзера создавая уникальный файл кэша, куда будет вбиваться его сообщение после блокировки основного файла, и если он заблокирован его запросом, то уже при удачном сохранении старый файл базы чата удаляем, а кэш переименовываем в файл базы чата. Так можно избежать потери данных при большом количестве запросов. Плюс можно ограничить количество пользователей в одной комнате. Всё равно даже 20 юзерам одновременно в одном чате очень неудобно общаться при активном постинге, потому что сообщения слишком быстро проскакивают. Не вызовут ли такие махинации большую нагрузку на сервер нежели Мускул? И надёжна ли вообще эксклюзивная блокировка файла? Чисто гипотетически, если в одну секунду юзеров 5 будут пытаться писать в файл то все ли смогут это сделать? Возможно блокировка выдаст ошибку и не даст запостить? Я бы, конечно, лучше замутил на мускуле, но боюсь нагрузки. Есть тема использовать cron или просто по таймауту раз в секунд 30 брать из базы мускула поля чата, так же удаляя всё старое и ненужное чтобы запрос был легче, максимум полей 30-50 и создавать файл кэша с которым уже и будет работать сам чат, чтобы именно этот скрипт никакого отношения к ней не имел. Очень надеюсь на ваши подсказки. Руки чешутся, а к написанию из-за этого тупика никак не могу приступить.![]()