У больших сайтов с высоким трафиком используются ORM?

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

Ответ 1

В настоящее время выпущенная версия EF, v1.0 в .NET 3.5, имеет ужасную производительность. Я провел обширное тестирование и провел несколько длительных обсуждений с Microsoft по этому вопросу более года назад, когда он был впервые выпущен. Эффективность тока EF имеет LOT, что необходимо, и во многих случаях может генерировать абсолютно ужасные 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 ORM, Subsonic и т.п.

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

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

Ответ 2

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

Ответ 3

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

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

Ответ 4

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

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

Ответ 5

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

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

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

Ответ 6

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