it-swarm.com.ru

Какой самый быстрый в PHP-MySQL или MySQLi?

Я хотел бы знать, есть ли у кого-нибудь опыт из первых рук с этой дихотомией. В нескольких блогах говорится, что расширение mysql работает быстрее, чем mysqli. Это правда?

И я спрашиваю только о скорости. Я знаю, что mysqli имеет функции, которых нет в старом расширении.

56
David

Расширение MySQL немного быстрее MySQLi в большинстве тестов, о которых я уже писал. Однако разница настолько мала, что это, вероятно, не должно быть вашим критерием для выбора между ними.

Другие факторы затмевают разницу в производительности между MySQL и MySQL. Использование mod_php или FastCGI, кеша байт-кода, такого как APC, или разумное использование кэширования данных для уменьшения количества обращений к базе данных гораздо более выгодно для общей производительности сценариев PHP, чем выбор расширения MySQL.

Не будь копеечным и глупым! :-)

88
Bill Karwin

"Это зависит."

Например, PHP MySQL против метрик доступа к базе данных MySQLi и последующие комментарии указывают на аргументы в обоих направлениях.

Если у вас есть зрелая база данных и кодовая база, проведите некоторое тестирование и посмотрите, что работает в вашей системе. Если нет, перестаньте беспокоиться о преждевременной оптимизации.

10
Alkini

Смотрите http://php.net/manual/en/mysqlinfo.api.choosing.php

Общая производительность всех трех расширений считается примерно одинаковой. Хотя производительность расширения составляет лишь небольшую часть общего времени выполнения веб-запроса PHP. Часто воздействие составляет всего 0,1%. 

6
Gordon

Что касается языка программирования PHP, MySQL - это старый драйвер базы данных, а MySQLi - улучшенный драйвер. MySQLi использует преимущества новых функций MySQL 5.

Особенности MySQLi взяты с сайта php.net:

  • Объектно-ориентированный интерфейс
  • Поддержка подготовленных заявлений
  • Поддержка нескольких заявлений
  • Поддержка транзакций
  • Расширенные возможности отладки
  • Поддержка встроенного сервера
4
Pank

Может быть, это может быть причиной, чтобы сделать правильный выбор :: The Plot to Убить PHP расширение MySQL

«Да, вы все правильно прочитали. Недавно Филипп Олсон отправил внутреннему списку рассылки PHP предложение убить оригинальное расширение PHP MySQL в будущих PHP версиях».

4
AgelessEssence

Согласно всем результатам Google для тестов, связанных с ceejayoz похоже, что MySQL, по крайней мере, немного быстрее, чем MySQLi во всех тестах производительности. Я рекомендую прочитать результаты для деталей, но решил, что я опубликую что-то, что прямо ответит на вопрос и увеличит ответ ceejayoz.

3
Jay

Документация PHP имеет хорошее сравнение mysql, mysqli и PDO . Я знаю, что вы спрашивали только о скорости, но другие могут найти это полезным. В нем говорится об особенностях различия между вариантами.

3
Don Kirkby

Если не имеют значения миллисекунды, не волнуйтесь. Конечно, если вам не нужны дополнительные функции, предоставляемые mysqli, просто придерживайтесь проверенного и проверенного mysql.

2
Taylor
<?php
$start = microtime();
$c = new mysqli('localhost', 'username', 'userpass', 'username_dbname');
$c -> select_db('username_dbname');


$q = $c -> query("SELECT * FROM example");

while ($r = $q -> fetch_array(MYSQLI_ASSOC))
  {
  echo $r['col1'] . "<br/>\n";
  }

$me = $c -> query("SELECT col1 FROM example WHERE id='11'") -> fetch_array(MYSQLI_ASSOC);

echo $me['col1'];
echo (microtime() - $start);
?>

Почему при использовании mysqli oop наблюдается небольшое увеличение скорости при использовании этого скрипта с процедурным стилем mysql или mysqli? При тестировании вышеописанного скрипта я получаю на 0,0009 секунды больше, чем при использовании другого 2. При использовании процедурных процедур mysql или mysqli я загружал скрипты 20x в каждом отдельном стиле, и оба всегда были выше .001. Я загружаю вышеупомянутый скрипт 20x, и я получаю ниже .001 5x. 

0
Josh