Доброго времени суток. Подскажите, подойдет ли SQLite для чата? Подключать для этого MySQL сервер ой как не охота. Для каждого пользователя создается своя база-файл, и в ней уже содержится вся переписка. Да, многопоточности нету, но очень редко будут одновременные запросы (всего ж 2 человека, ну или чуток больше). Да и если будут, запись/чтение очень быстрые, и при очереди все равно быстрее чем MySQL. Или есть прям жесткие какие-то подводные камни? Да, легче все в MySQL запихнуть, но таблица с сообщениями очень часто будет дергаться, чтение, и запись, и проверка на новые сообщения, и обновление статуса просмотрено/прочитано. Тем более что при чтении блокировок нету, и поток может быть несколько. Так пользователь зашел, чатик обновился, затронулась только его таблица, и вышел. Мне кажется с файлом удобнее работать будет. Да это же чаты, сообщений может быть куча. А если в общей таблице (базе) все делать, то записей будет анриал количество. Так от, что думаете по этому поводу? И SQLite изначально работает в режиме очереди? Или если в момент времени к базе было подключение, то выдаст ошибку, или просто подождет? Вот это интересно. Если нет, то как это дело настроить то?
Кстати по поводу создания этих чатов. Это уже в отдельной общей таблице будет все делаться. И тут уже многопоточность нужна была. Но, решил так же SQLite использовать, а обновленный результат (список чатов пользователя) в Redis пихать для каждого пользователя. Обращения будут лишь когда чат будет создаваться и удаляться. То есть, не сильно нагруженная таблица. Если уже и будет очередь, то не сильно большая, можно и подождать на секунду больше (хотя это сильно взято, думаю где-то и четверти не будет).
От разобраться бы с этой очередью, и красота. Помогите) Заранее спасибо!
Если делать уведомления о новых сообщениях по вебсокетам а не постоянными запросами к таблице сообщений то к бд нагрузка на чтение будет минимальная только для открытия страницы и получения десятка последних сообщений.
А на запись тоже много нагрузки не будет так как люди сообщения не шлют по десятку за секунду.
Зачем вы изобретаете всё это с SQLite?