Порядок исполнения запросов к MySQL в рамках одного подключения?
Здравствуйте!
На сервере запущен некий php-шеллскрипт работающий как daemon, который ожидает подключения пользователей для дальнейшей работы с ними. Этот демон запущен единым процессом и никак не плодит себе подобных. Получается, что к данному демону может обратиться неограниченное число пользователей.
Этот скрипт держит постоянное соединение с БД MySQL, которое открывается в момент запуска скрипта из шелла.
Собственно сам вопрос заключается в том, как будет вести себя MySQL сервер при поступлении N-ого количества абсолютно разных запросов в рамках одного подключения? Будет ли он выполнять их последовательно или параллельно, каким образом это будет влиять на скорость обработки пользовательских обращений? Или все таки придерживаться схемы: 1 пользователь = 1 подключение к БД?
Если вопрос о том, не будет ли сервер путаться, что кому отвечать, то нет, не будет.
Во всех остальных смыслах - на данном уровне понимания процессов вам ответ на этот вопрос - на самом деле - не нужен. Не забивайте себе голову.
Вопрос не в том, будет ли сервер путаться отдавая вопросы, а в том, какой порядок исполнения запросов на сервере, и не возникнет ли такая ситуация, что пользователь инициировал запрос, который будет 1000-ым в очереди. И не заставит ли он таким образом пользователя, слишком долго ждать пока выполнятся медленные запросы, которые раньше него в этой очереди.
AntonMinsk: Это всё даётся на откуп серверу, отвечать правильно и быстро - это его дело. Будут ли одни запросы блокировать другие - сильно зависит от структуры БД и самих запросов. Могут, если говорить в общем.
Да, есть очередь, да, могут выполняться параллельно и да, одни запросы могут блокировать другие.