Как улучшить производительность доктрины (простой sql в 4 раза быстрее)? - PullRequest
1 голос
/ 14 декабря 2010

Проблема следующая - я хочу выполнить простой запрос (например, 10 строк из одной таблицы)

В Doctrine эта операция занимает 0,013752 с

Вот DQL:

$q = Doctrine_Query::create()
    ->update('TABLE')
    ->set('FIELD', 1)
    ->where('ID = ?', $id);
$rows = $q->execute();

Но когда я использую простой SQL и mysql_query(), это займет всего 0,003298 с

Что не так? Действительно ли Doctrine в 4 раза медленнее?

1 Ответ

13 голосов
/ 14 декабря 2010

Джон,

Все в порядке.Doctrine вносит значительные издержки по сравнению с прямым SQL-запросом.Но вы получаете удобство красивого объектно-ориентированного интерфейса с базой данных, а также множество других преимуществ.Если производительность действительно важна, вы можете не использовать Doctrine.Для запросов, где мне нужна производительность, а не удобство (например, сотни тысяч вставок), я использую PDO, чтобы избежать накладных расходов, возникающих в ORM.

...