[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Дурной тон?
zezst
А вот на сколько плохо так делать?
    $mysqli1 = new mysqli($dblocation, $dbuser, $dbpassword);
$mysqli2 = new mysqli($dblocation, $dbuser, $dbpassword);
$mysqli3 = new mysqli($dblocation, $dbuser, $dbpassword);

И чем это грозит при большой частоте обращений?



Спустя 55 минут, 53 секунды (15.07.2012 - 21:14) Игорь_Vasinsky написал(а):
злоупотреблять не стоит, но если необходимо подключение к несколиким БД или под разными юзерами - то я бы предложил динамически менять юзеров, а не клипать 100500 коннектов.

Спустя 3 минуты, 43 секунды (15.07.2012 - 21:17) zezst написал(а):
Спасибо.
Тут пример чисто гипотетический. Из ряда а вдруг да произойдет такое.
Ну и интересно, сколько коннектов может выдержать mysql?
Ах да. При условии что ($dblocation, $dbuser, $dbpassword)не меняются.

Спустя 13 минут, 44 секунды (15.07.2012 - 21:31) kamanch написал(а):
Цитата
Ну и интересно, сколько коннектов может выдержать mysql?

Спустя 1 минута, 22 секунды (15.07.2012 - 21:32) zezst написал(а):
СПАСИБО!!!

Спустя 7 минут, 27 секунд (15.07.2012 - 21:40) Игорь_Vasinsky написал(а):
не стоит на рабочих проектах стараться выжать всё с сервера. нужно глядеть в сторону оптимизации.

Спустя 13 минут, 39 секунд (15.07.2012 - 21:53) zezst написал(а):
Рабочим тут и не пахнет. Тут, как бы сказать, велосипед. Для лучшего усвоения ООП.
А вот тогда еще вопросик. Про оптимизацию.
class z_mysql
{
public $error;

public function __construct($dblocation = NULL, $dbuser = NULL, $dbpassword = NULL, $dbname = NULL, $create = NULL)
{
if(!isset($dblocation) || !isset($dbuser) || !isset($dbpassword))
{
return $this->error = 'сервер базы, имя пользователя и пароль пользователя должны быть обязательно указаны';
}

$this->dblocation = $dblocation;
$this->dbuser = $dbuser;
$this->dbpassword = $dbpassword;

$this->connect();

$this->DB_SHOW();
}

public function connect()
{
$this->mysqli = @new mysqli($this->dblocation, $this->dbuser, $this->dbpassword);
if(mysqli_connect_errno()) return $this->error = 'Ошибка установки соединения';
}

public function DB_SHOW()
{
$this->db_list = array();
$query = $this->mysqli->query('SHOW DATABASES');
foreach($query->fetch_all(MYSQLI_BOTH) as $value)
{
$this->db_list[] = $value[0];
}
}

Стоит ли оставлять метод connect() публичным, и если да то стоит ли оставлять его вызов из конструктора?

А может лучше посоветуете, что нибудь почитать по этой теме?

Спустя 8 минут, 29 секунд (15.07.2012 - 22:02) Игорь_Vasinsky написал(а):
ты выбрал неудачный вариант для написания велосипеда))

коннект в БД mysql (mysqli) - производиться одной функцией, а не классом wink.gif

Спустя 11 минут, 17 секунд (15.07.2012 - 22:13) zezst написал(а):
Ну тут как сказать. Первый велосиппед был на mysql (года три так назад), а сейчас переписал под mysqli. Оставив теже точки входа. И немногочисленные примеры для localhost незаметили ни какой подмены. Т.е. данный класс работает как драйвер между базой и сайтом.

Спустя 33 минуты, 21 секунда (15.07.2012 - 22:47) Guest написал(а):
Любая БД содержит в себе пулы соединений (соединения на связи уже) для лучшей производительности, просто, если нет в том необходимости не стоит плодить соединения. Для Вас же дороже выйдет, за каждым уследить сложно, тем более что язык сценариев и редко выпадает требование сохранение состояния сервера тем более с БД.

Спустя 11 минут, 3 секунды (15.07.2012 - 22:58) Guest написал(а):
zezst
Вы ж не транзакции создаёте для пользователя в демонах.
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.