Не совсем понимаю. Неужели не ясно, что PDO всех порвет, так, как это встроенное расширение в PHP, которое в свою очередь, написано на c, чем уже делает отрыв перед всеми другими классами, которые участвуют в тестировании?
Зачем эта наглядность? Кому она нужна? Изначально ясно, что PDO быстрее всех тех, что в примерах. Можете хоть 10 раз минуснуть мое сообщение, но я абсолютно не вижу надобности в примере наличие PDO.
Вопрос в том, насколько быстрее. Имхо, это имеет значение, так легче оценить разницу в скорости между разными библиотеками, если принять во внимание этот разрыв.
MySQLi и MySQL практически равны по скорости. Я сделал дополнительные тесты, которые не вошли в обзор, они показали, что с MySQLi библиотеки работают либо также (ADOdb, ADOdb Lite), либо немного медленнее (зависит от реализации).
Сравнение совершенно бессмысленное. Главное и единственное преимущество PDO над mysqli — несколько более продвинутые prepared statemant'ы. В тесте это никак не учитывается, и лучшую скорость для задач из теста даст именно mysqli.
По остальным классам то же самое. В тесте как-то должна учитываться специфика использования того или иного класса в разных задачах, иначе получается какой-то конкурс красоты.
Вы невнимательны, сравнивался не PDO и MySQLi, а разные классы DBAL. Специфика использования классов: подключаться к базе, выполнять 10-20 запросов с безопасными placeholder-ами, и возвращать результат в форме ассоциативного массива. Поскольку это умеют делать практически все, а жить с одной, был объявлен конкурс красоты ;)
А зачем это нужно? В реальных условиях задачи возлагаемые на классы абстракции гораздо более сложные, ведь иначе они и не нужны были бы. Соответственно, результаты тестов могут быть совершенно другими, более интересными для программиста (а не для председателя жюри конкурса красоты :).
Если задачи более сложные, то программист уже знает, какой класс DBAL будет использовать, потому что только он предоставляет необходимую конфигурацию. Но если под требования программиста подходит несколько классов (не во всех проектах нужен полноценный ORM или диалектонезависимый конатруктор запросов, скажем), то ему интересно узнать, как быстро будет работать библиотека.
Например для того, чтобы программист, вынужденно переходящий с PDO на что-то другое, мог получить приблизительное сранение варинатов, и оценить насколько медленее скорее всего будет работать его приложение.
Про принужденный переход с PDO — попробуйте активно поработать с *LOB'ами Оракла в связке nginx+php-fpm, у меня честно сказать не получилось. Вообще поддержка Оракла в PDO довольно сырая, и об этом пишет и разработчик PDO_OCI и самы Оракловцы в своей php expert zone.
Радует тенденция, что на Хабре начинают бенчмаркить что-то существенное, а не echo vs print :)
Еще интересно бы глянуть на тест конструкций Zend_Db
$result = $db->select()->from()
->where()
->order()
->limit()
->query()->fetchAll();
против
$result = $db->query(ТО_ЖЕ_В_SQL)->fetchAll()
ясно, что второй вариант сильно быстрее, но вот насколько сильно...
Это уже отдельная тема разговора. Мне было бы интересно ещё сравнить скорость с placeholders и без. Но это всё, пожалуй, для теста, посвящённого одной конкретной библиотеке.
Вопрос несколько не по теме:
Как во всех этих классах (в PDO в особенности) с SQL Injection? Они сами экранируют символы или как в mysql_query надо mysql_escape_string() делать?
Сравнение скорости PDO, ADOdb, MDB2, Zend_Db, ADOdb Lite и DbSimple