Несколько пользователей обращаются к одной и той же таблице базы данных

Я создаю сайт чата, где сотни пользователей будут общаться друг с другом. Это двусторонний чат, то есть один пользователь может общаться только с одним пользователем. Все работает нормально. Что я делаю, так это сохраняю сообщения всех пользователей в одной таблице базы данных, а затем пользователи получают доступ к определенным чатам через некоторый идентификатор.

Я просто хотел спросить, не будет ли проблем, если несколько пользователей одновременно будут обращаться к одной и той же таблице базы данных. Каков предел? Примерно с 4 пользователями все работает нормально, но нужно ли мне вносить какие-либо изменения для обработки более 4 пользователей (скажем, 500).

Сайт основан на PHP и MySql. Я использую ClearDB (бесплатный план) для базы данных, а сайт размещен в Windows Azure.


person prolific    schedule 11.01.2014    source источник


Ответы (2)


Если вы используете PHP в качестве внутреннего сценария, вы, вероятно, подключаетесь к базе данных с одним подписным пользователем (по умолчанию root). Ваш внутренний скрипт не зависит или не должен полагаться на бизнес-уровень, которым являются пользователи чата.

Есть много способов улучшить производительность этого приложения. Если это приложение для чата, я рекомендую использовать Redis и хранить архив в базе данных в фоновом режиме (рассмотрите cronjob). Одна простая задача показать другим сообщение (это ваш вариант использования) слишком проста, чтобы заставить RDB работать.

person Filip Górny    schedule 11.01.2014
comment
Вы хотите сказать, что, хотя пользователей чата много, но все же для БД есть один пользователь? Я предполагаю, что все пользователи чата создают новое соединение с базой данных, что означает наличие нескольких соединений? Не могли бы вы немного объяснить? - person prolific; 11.01.2014

Посмотрите здесь: https://www.cleardb.com/store/azure. Исходя из этого, в рамках бесплатного плана вы ограничены 4 подключениями к базе данных, поэтому вы обязательно увидите проблемы с производительностью.

Вы можете либо перейти на лучший план, либо разместить свою базу данных на виртуальной машине.

person Gaurav Mantri    schedule 11.01.2014