Я провел некоторое тестирование производительности, чтобы сравнить функции Mysqli с функциями PDO, используя как подготовленные операторы, так и обычные прямые запросы (протестировано с использованием операторов select в таблицах Mysqlnd и MyISAM).
Я обнаружил, что запросы PDO немного медленнее, чем Mysqli, но только немного. Это имеет смысл, поскольку PDO использует для этой цели в основном просто оболочку, которая вызывает функции Mysqli. Преимущество использования PDO состоит в том, что он немного облегчает миграцию в другую базу данных, поскольку имена функций не являются специфичными для MySQL.
Реальная разница в производительности заключается в том, используете ли вы подготовленные запросы. Существует большая и значительная производительность штраф за использование подготовленных запросов. Другие люди, которые проверяли их, нашли те же результаты.
Единственный раз подготовленные запросы выполняются быстрее, если вы готовите запрос один раз, а затем отправляете его тысячи раз с разными значениями данных. В противном случае всегда быстрее использовать mysqli :: query () или PDO :: query (). Но важно знать, что эти функции не экранируют значения данных для вас, поэтому вы должны помнить, что нужно использовать mysqli :: real_ escape_ string () или PDO :: quote () для переменных данных.