восстановить соединение с базой данных или использовать старое соединение для лучшей производительности

У меня есть несколько классов, и все подключаются к одной базе данных. У меня есть класс базы данных и пользователь, профиль, класс сообщений?
я должен использовать extends или просто глобальный и получить старое соединение, для скорости и производительности

class mydb{
function connect(){
}
function query(){
}
}
$mydb = new mydb(connect);class user extends mydb{
function get_usr(){
parent::connect(); // in here I need to connect again, but I still have my connection $mydb
$value = parent::query(string);
return $value;
}

Или же

class user{
function get_usr(){
global $mydb;
$value = $mydb->query(string);
return $value
}

}

Теперь какой из них лучше для лучшей производительности.

0

Решение

Лучшая практика для корпоративных приложений — создание пула соединений с базой данных. Эти соединения всегда открыты со стороны БД.

Когда приложение или ваш класс должны общаться с БД, класс выбирает одно соединение из пула (которое должно быть настраиваемым) и использует его. Это экономит время на установление и отключение соединения. Но его разработчики обязаны освободить соединение после использования обратно в пул соединений.

Это помогает в

  1. поддержание использования сервера БД в определенных пределах
  2. Улучшение производительности БД
  3. ограничивающий нет. запросов к БД
  4. Улучшение читаемости и повторного использования кода.

С точки зрения производительности, важен не только пул соединений с БД, но и тип используемых вами операторов. для повышения производительности рекомендуется использовать подготовленные операторы при использовании пула соединений.

2

Другие решения

Закрытие переподключения занимает время (в мс).
Лучше всего использовать одно глобальное соединение (открытое) все время.
Это лучшие практики на всех языках программирования.

PS: не забудьте закрыть соединение, когда оно не нужно (например, когда пользователь закрывает программное обеспечение) 🙂

1

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector