В общем только одно подключение кушает целую секунду. Каким образом можно ускорить? Код (PHP): class db { private $_db; public static $mysqli = null; private function __construct(){ global $config; $ob_mysqli = @new mysqli($config['db_host'], $config['db_login'], $config['db_pass'], $config['db_name']); if(!$ob_mysqli->connect_error){ $this->_db = $ob_mysqli; }else{ exit("No connect to database"); } } public static function getObject(){ if(self::$mysqli == NULL){ $obj = new db(); self::$mysqli = $obj->_db; } return self::$mysqli; } public function query($sql){ return $this->_db->query($sql); } }
Если ровно секунду то это скорее всего таймаут на днс. Такое может быть даже с локалхостом. Лечится шаманством и проходит внезапно.
адрес сервера на локальной машине или удалённой? localhost замени на 127.0.0.1 Может firewall обрабатывает подключение, твой комп нагружен очень сильно или ещё что-то, поставь более новую версию MySQL или переустанови текущую и как ты узнал что подключение занимает секунду?
1.Локалхост. 2.Возможно,тут только скайп и браузер открыт,хотя на другом компе и вправду всё было нормально. 3.Версия мускула самая последняя,даже отдельно в денвере ставил для пхп 5.5 4.microtime(),а точнее его доделка(Benchmark) которую я украл из CodeIghniter'а Добавлено спустя 5 минут 59 секунд: Ооо,помла замена localhost на 127.0.0.1. SPASIBO BOLSHOE
Такая фигня может быть когда localhost резолвится как ip6 адреc, а mysql не настроен на ip6. Можно коннектиться по явному ip4 адресу либо работать через сокет.
самая противная по дебагу ошибка, можно рвать волосы на заднице пару дней, пока не наткнёшься на упоминание про днс и хостс и ипв6 и прочее. Жуть. У меня в одном проекте запись в базу в одну из таблиц занимает 300 мс на продакшене, а на виртуалке дома - ну три мс. Вот почему? Блин...