Используют ли большие сайты с большим трафиком ORM? - PullRequest
11 голосов
/ 01 сентября 2009

Я наконец-то решил использовать Entity Framework, поскольку он имеет лучшую производительность среди всех ORM. Но прежде чем я начну читать и писать код, я просто хочу узнать, существуют ли какие-либо сайты с высоким трафиком, которые используют ORM.

Ответы [ 6 ]

13 голосов
/ 01 сентября 2009

В настоящее время выпущенная версия EF v1.0 в .NET 3.5 имеет ужасную производительность. Я провел обширное тестирование и провел несколько долгих обсуждений по электронной почте с Microsoft по этому вопросу более года назад, когда он был впервые выпущен. Текущая эффективность EF имеет МНОГО желаемого, и во многих случаях может генерировать абсолютно ужасные SQL-запросы, которые снижают вашу производительность.

Entity Framework v4.0 в .NET 4.0 намного лучше. Они исправили большинство, если не все, проблемы плохой генерации SQL, которые мешают EF v1.0 (включая проблемы, которые я представил им год назад). Действительно ли EF v4.0 имеет лучшую производительность, еще неизвестно. Он сложнее, чем LINQ to SQL, поскольку он обеспечивает гораздо большую гибкость. Поскольку релизная версия еще не доступна, невозможно сказать, будет ли EF v4.0 самым быстрым или нет.

Для объективного ответа на этот вопрос потребуется объективное, непредвзятое сравнение между основными конкурентами ORM, такими как EF, LINQ to SQL, nHibernate (предпочтительно с поставщиком LINQ), LLBLGen и даже некоторыми новичками, такими как Telerik's ORM, Subsonic и тому подобное.

Что касается крупномасштабных и массовых производственных систем, использующих ORM. Я бы посоветовал посмотреть на сам StackOverflow.com, который использует LINQ to SQL. SO стал одним из, если не , , ведущих сообществ программистов в Интернете. Определенно большой объем здесь, и этот сайт работает замечательно. Что касается других сайтов, я не могу сказать. Внутренние детали реализации большинства основных веб-приложений, как правило, загадка. Я знаю, что большинство применений ORM также для внутренних корпоративных систем. Финансовые системы, здравоохранение и т. Д. Объектные базы данных также используются в однотипных системах, хотя они встречаются гораздо реже. Я бы так сделал некоторые поиски использования ORM и больших сайтов.

Одна вещь, которую нужно отметить в вашем поиске. Убедитесь, что отзывы, которые вы найдете, актуальны. Сцена ORM изменила ЛОТ за последние два года. Производительность, эффективность, возможности, возможности настройки RDBMS динамического SQL и т. Д. Значительно улучшились с тех пор, как ORM были созданы около десяти лет назад.

6 голосов
/ 22 сентября 2009

Веб-сайты действительно с высоким трафиком фактически вообще отходят от баз данных SQL, потому что при таких нагрузках при записи, которые широко распространены в современных приложениях, их практически невозможно масштабировать за пределы одной машины, ORM или ORM. Это было названо " NoSQL движение "

Однако, хотя это очень модная тема, совершенно не имеет значения для сайтов, на которых нет тысяч активных одновременно работающих пользователей. И беспокойство по поводу производительности ORM является аналогичным вопросом: большинство сайтов на самом деле не обладают «высоким трафиком», чтобы ORM стал проблемой (за исключением случаев, когда они серьезно не реализованы или применены).

6 голосов
/ 01 сентября 2009

Я знаю, что в одном из подкастов Джефф упомянул, что в stackoverflow используется Linq-to-SQL

4 голосов
/ 01 сентября 2009

Джриста в порядке. Я просто хочу добавить, что вы должны серьезно рассмотреть LINQ to SQL. И с точки зрения простоты, и с точки зрения производительности, это лучшая технология (на данный момент). Это очень быстро и разумно способно из коробки. Если вы хотите еще больше улучшить LINQ to SQL, ознакомьтесь с PLINQO framework .

PLINQO - это фреймворк, который базируется на стандартном LINQ to SQL и добавляет массу функций, в том числе некоторые очень элегантные массовые операции и функции кэширования. Лучше всего PLINQO адаптируется к изменениям в вашей схеме базы данных, но сохраняет ваш собственный код. Который ОЧЕНЬ ловкий и, на мой взгляд, самый ценный аспект.

2 голосов
/ 01 сентября 2009

Несмотря на то, что Ayende (автор NHibernate) указывает, что напрямую не указать, какой ORM быстрее используя ORMS как часть своих приложений.

Twitter использует (был?) Ruby on Rails (RoR), который использует ORM. 37 сигнал парни используют RoR для своих приложений .... Я знаю, что это не .Net, но, как упоминает kuoson, L2S используется SO, и есть много людей, использующих NHibernate, как Джеффри Палермо и Голова. Я не удивлюсь, обнаружив, что многие недавно разработанные веб-приложения используют ORM.

Даже если ORM обойдется вам в снижение производительности, большинство ORM позволяют вам настраивать используемый SQL при необходимости. Большинство предлагают использовать ORM, а затем устранять узкие места по мере их возникновения. Кроме того, хороший ORM решает так много для вас, что написание вашего собственного DAL в наши дни становится намного сложнее.

1 голос
/ 01 сентября 2009

Конечно, Reddit использует части SQLAlchemy (по неизвестным причинам, я думаю, они переписали большинство из них: /). Большинство, если не все крупные сайты Django используют ORM (включая прежние Pownce и Curse).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...