Вопрос по mysql в С++

149
15 декабря 2016, 15:45

Есть многопоточный сервер на с++, который работает с mysql базами. Проблема в том, что открытие одного соединения на одного клиента не подходит из-за большой нагрузки на сервер, а использование одного соединения с базой на все приложение чревато большими проблемами. Подскажите как решить эту проблему.

Answer 1

Обычно в таких случаях используют пул соединений (connection pool). Суть его в том, что к базе открывается ограниченное число соединений (например, 10). Каждый раз, когда клиент пытается подключиться к базе, мы выдаём ему соединение из пула. После оекончания работы с базой (отсоединения клиента) соединение возвращается в пул, но не закрывается, а по приходу нового запроса отдаётся следующему клиенту. Плюсы такого подхода - не нужно тратить время на переоткрытие соединений с базой. Минусы - ограниченное число одновременных подключений к базе, сложности реализации. На вашем месте я бы не стал писать пул самостоятельно, а поискал бы готовые реализации в Интернете (сам я, к сожалению, не пользовался подобным в C++, поэтому ничего конкретного посоветовать не могу).

READ ALSO
Как сделать два запроса через одно подключение PDO?

Как сделать два запроса через одно подключение PDO?

В таком случае код работаетЕсли создать новый объект (new PDO)

144
Проблема с базой данных

Проблема с базой данных

У меня есть база на хостингеЕсть на сервере апи, которое взаимодействует с базой и с приложением

201
Запрос INSERT в YII

Запрос INSERT в YII

Можно ли проверить значения, которые передает запрос INSERT в YII? Дело в том, что при добавлении записи вылетает следошибка:

194
MySQL соответствие поля шаблону

MySQL соответствие поля шаблону

Доброго времени сутокПочему не получается сделать соответствие поля регулярному выражению- ни одна документация не запрещает это (вроде...

177