Недавно я начал изучать ORM, вопрос перескочил на мой взгляд:
Приложения PHP используют в основном MySql и Sqlite, почти все серверы PHP установлены так, поэтому стоит ли использовать ORM в PHP для обеспечения базы данных?
Как насчет производительности?
Независимость базы данных не является основной причиной использования ОРМ. то, что вы хотите иметь, – это общая абстракция базы данных. это может означать: простоту использования, более быстрое развитие, независимость базы данных, … в любом случае, обычно стоит использовать ORM. если ваше приложение всасывает всю вашу мощность процессора, вы можете использовать некоторый простой sql для оптимизации определенных запросов. Я думаю, это редкий случай.
вы можете прочитать это: Каковы преимущества использования ORM?
Существует несколько причин, по которым вы можете использовать ORM, о чем я могу думать:
Большинство причин использования ОРМ связаны со скоростью и простотой разработки.
Что касается производительности, я использовал доктрину с php раньше, и гидратация создала огромные накладные расходы по сравнению с простое извлечение строк.
Для независимости базы данных (и производительности) используйте PDO . Он встроен, его подготовленные операторы отлично подходят для предотвращения уязвимостей SQL-инъекций.
Если вы застряли на O / RM, он даже поставляется с небольшим OO-чутье … См. PDOStatement :: fetch (и некоторые другие методы fetchXxx).
Использование ORM облегчает избыточность написания кода шаблона, связанного с открытием подключения к базе данных, объединения соединений, подготовки оператора, выполнения инструкции, сопоставления результатов выполнения инструкции с чем-то более значимым и, наконец, закрытия соединения.
Гораздо чище сделать что-то вроде создания экземпляра объекта, установить его свойства, а затем вызвать операцию сохранения объекта. Такой тип стоимости стоит использовать ORM для ручного кодирования многих шагов, необходимых для взаимодействия с базой данных.
Кроме того, с помощью чистого ORM можно обменять базы данных с минимальным изменением на приложение.
Надеюсь, это поможет.
Что делать, если ваш сервер запускает PostgreSql или SQL Server – два других очень распространенных механизма баз данных.
Что делать, если вы хотите подключиться к устаревшей базе данных?
Кроме того, поддерживали ли вы какие-либо крупные проекты, которые напрямую связаны с базой данных? Это заставляет меня дрожать, когда я открываю файл, полный вызовов mysql_query
.
Производительность … Зависит от ОРМ, о которой идет речь. Я больше знаком с ними в настройках .NET, и, конечно же, в этой среде существует большая разница в производительности, но обычно это компромисс с функциями.
Использование ORM увеличит ортогональность между вашим кодом и базой данных – это облегчит разработку и поддержку. Возможность переключения между базами данных является преимуществом этого, но, конечно, не единственной причиной.
ORM – это пустая трата времени. Это странно, поскольку он был разработан, чтобы сэкономить вам время :), но это правда. У меня была неосторожность использовать ORM на нескольких языках, и это не стоит. Существует в основном 2 типа проектов:
Комплексные проекты с множеством подключенных таблиц, просмотров и прочего. Возможно, больше баз данных.
На мой взгляд, ORM жив только благодаря рамкам, которые используют его внутри. И производительность? Я не уверен (так как я больше не использую его), но я считаю, что производительность тоже может быть проблемой. Вы должны заплатить хотя бы некоторую цену за то, что вы правильно отбракованы из запроса базы данных? Я думаю, что ORM была отличной идеей на бумаге, но она просто не работает.