2013-07-01 2 views
-1

Неужели Mysqli процедурные более быстрее в простых запросах, чем PDO класс, я уверен, не используя входные параметры, потому что я не в отношении о SQL инъекцияхMysqli процедурный против PDO?

+0

Я не думаю, что тот или другой будет иметь значительные преимущества скорости - либо хорошо! Пока вы не используете устаревшие функции mysql, выберите либо. – halfer

+0

на сервере php выполнение может быть быстрее? –

+0

Я очень сомневаюсь, что разница в скорости между mysqli и pdo окажет какое-то влияние на ваше приложение, и если разница будет иметь такое большое влияние и быть критическим, я бы предложил использовать nosql вместо mysql, где вы можете поскольку увеличение производительности, вероятно, будет больше, чем разница между этими двумя параметрами. – Anigel

ответ

2

Вам просто удалось выбросить в миску все несравненные дела.

«процедурный vs.OOP» не имеет ничего общего с входными параметрами, хотя ни один из них не имеет ничего общего с производительностью.

Для родового «MySQLi против PDO» вопрос, который я могу только процитировать мой other answer:

  • Если вы понимаете необходимость использования уровня абстракции в базах данных и ищет API, чтобы создать одну на , mysqli - хороший выбор, так как он действительно поддерживает многие функции, связанные с mysql.
  • Если, как и большинство людей PHP, вы используете необработанные API-вызовы прямо в коде приложения (что является по существу неправильной практикой) - PDO - единственный выбор, так как этот API претендует на роль полу-DAL , еще не завершен, но предлагает множество важных функций, с двумя из них делает PDO критически отличается от MySQLi:

    • в отличие от MySQLi, PDO может связать PLACEHOLDERS значением, что делает динамически построенные запросы осуществимые без нескольких экранов довольно запутанна код.
    • В отличие от mysqli, PDO всегда может возвращать результат запроса в простой обычный массив, в то время как mysqli может делать это только на установках mysqlnd.
2

Там нет никакой разницы в производительности между mysqli_query('SELECT 1') и $pdo->query('SELECT 1'). Второй - обертка вокруг первого, но потеря производительности, которую он несет, не имеет значения по сравнению с общей скоростью запроса, вы не должны выбирать тот или иной из-за скорости.

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

+0

Есть ли у вас какие-либо цифры, чтобы доказать свое «процедурное ускорение»? – deceze

+0

@deceze: ошибка с моей стороны, я имел в виду подготовленное заявление. Я исправил это. Это быстрее, потому что база данных только «компилирует» запрос один раз. – Lepidosteus

+0

Слишком плохо, такое последовательное выполнение происходит только один раз за 100 000 запросов. Не стоит упомянуть номер, на мой взгляд. –

Смежные вопросы