У меня есть несколько классов, и все подключаются к одной базе данных. У меня есть класс базы данных и пользователь, профиль, класс сообщений?
я должен использовать 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
}
}
Теперь какой из них лучше для лучшей производительности.
Лучшая практика для корпоративных приложений — создание пула соединений с базой данных. Эти соединения всегда открыты со стороны БД.
Когда приложение или ваш класс должны общаться с БД, класс выбирает одно соединение из пула (которое должно быть настраиваемым) и использует его. Это экономит время на установление и отключение соединения. Но его разработчики обязаны освободить соединение после использования обратно в пул соединений.
Это помогает в
С точки зрения производительности, важен не только пул соединений с БД, но и тип используемых вами операторов. для повышения производительности рекомендуется использовать подготовленные операторы при использовании пула соединений.
Закрытие переподключения занимает время (в мс).
Лучше всего использовать одно глобальное соединение (открытое) все время.
Это лучшие практики на всех языках программирования.
PS: не забудьте закрыть соединение, когда оно не нужно (например, когда пользователь закрывает программное обеспечение) 🙂