Производительность соединения с одной или несколькими базами данных в одном рабочем процессе - PullRequest
0 голосов
/ 04 октября 2018

нужно некоторое понимание архитектуры программного обеспечения по этому вопросу.Что из нижеперечисленного является более эффективным с точки зрения ресурсов (процессор, память, база данных)?

  1. Наличие одного подключения к базе данных в одном потоке?(Закрыть соединение только после того, как все сделано, включая бизнес-логику)

  2. Наличие нескольких соединений с базой данных в одном потоке?(Откройте, а затем закройте соединение с базой данных сразу после выполнения запроса)

В соответствии с бизнес-логикой, здесь данные, возвращаемые из запроса, обрабатываются или обрабатываются в соответствии с бизнес-правилами.

Прилагается схема для визуального представления.

ОБНОВЛЕНИЕ:

Язык программирования: PHP (Laravel для веб-приложения, Lumen для API)

База данных: MySQL

Хост: AWS

enter image description here

1 Ответ

0 голосов
/ 22 октября 2018

Для открытия нового соединения между вашей средой выполнения и вашей базой данных требуется, чтобы ваша ОС создала новый сокет (если среда выполнения и база данных находятся в одной системе, этот сокет, вероятно, является сокетом Linux, в противном случае этот сокет является сокетом tcp / udp), создание этого сокета связано с накладными расходами.сам.поэтому я не предлагаю открывать и закрывать соединения после каждого использования базы данных.но есть определенные условия, которые вы хотите сделать это.например, ваша база данных имеет ограниченное количество одновременных подключений, и у вас есть тысячи долго выполняющихся процессов, использующих эти подключения, возможно, в этой ситуации вы можете использовать второй подход.

...