Автор оригинала: Krishna
syfisher
Я просто к тому, что может быть я ошибаюсь (никогда не использовал ORM в чистом виде), но как одно из преимуществ Doctrine я вижу прозрачную интеграцию с memcached. Возможно, Doctrine + memcached окажется даже более быстрым решением, чем чистый MySQL?
Начнем с того, что кешей там 2:
кеш DQL->SQL, если не изменяет память используется массив, полученный из DQL, как id
кеш SQL->данные, данные - массив, следовательно получение из него коллекции будет происходить, даже если есть попадание в кеш случилось
Второй кеш относиться не к ORM, а к DBAL'у, и в принципе ничто не мешает использовать rawSQL, и получать инстансы объектов с помощью ORM. Не увурен, что в Doctrine есть такая фича, но ведь напильник есть у каждого

.
В принципе DQL+DQLCache очень быстро отдает SQL. А если учесть, что rawSQL кешить нормально можно только денормализуя данные и усложняя операции create/update/delete, то Doctine смотриться в этом случае намного вкуснее.
Прозрачный кеш на больших нагрузках - зло, из-за того, что приходится использовать различные хранилища для кеша (файлы, БД, память) и разные способы управления (события, время, явные вызовы), причем они могут различаться даже внутри одного доменного объекта. Но это не оправдывает разработчиков Doctrine, которые реализовали только кеши на уровне соединения и на уровне запроса, пропустив объект (таблицу). В генерации страницы могут принимать участие и 5-10 разных кешей, а если они будут прозрачными, то там и концов не найдешь, если что-то кешироваться будет не так.
-~{}~ 06.12.07 03:57:
Ах вот
зачем этот пост
