Задать вопрос
Ответы пользователя по тегу ORM
  • Почему некоторые программисты на GO работают с бд на голом SQL без ORM?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Скорее всего - специфика Go-задач.

    Дело в том что область применения ORM обычно ограничивается CRUD приложениями.
    И если мы заходим в область утилит для ETL и BigData то там оказывается что ORM вообще не нужен.
    Там работают во первых диалекты SQL, (Spark-SQL, Hive-SQL, MS U-SQL). Во вторых дизайн
    entities очень громоздкий (по 500-1000 колонок). И эти колонки еще и двигаются во времени
    следуя schema evolution на ходу. Тоесть добавляя новые колонки и расширяя типы от узких к широким.
    Представить себе ORM в таких условиях просто невозможно. Кроме того ORM кеширует объекты
    в коллекциях языка а это, сами понимаете не вопрос Bigdata и аналитики.

    Вообще ORM - это пугало, которым пугают на собеседованиях новичков. Для java-junior знание ORM - уже
    приравнивается к знанию сопромата и философии Конфуция. Знаешь ORM - получи должность
    в банке и сиди себе с умным видом на митинге.

    С моей точки зрения ORM ограничивает сильно в оптимизации запросов. Хинт уже так просто не поставить.

    Кроме ORM (Object-Relational-Mapping) есть и другая философия. Не от объектов к реляциям а наоборот.
    От базе к объектам. (Фреймворк MyBatis например). В нем причинно-следственная связь перевернута.
    Сначала таблицы и хранимые процедуры существовали в БД и уже потом, a posteriori, разработчик
    описывает для них мапппинги в обратном направлении.

    Существует также миф о том что ORM позволяет лихо прыгать по разным базам. Ни разу я для себя этот
    миф не подтвердил. Чем крупнее система - тем плотнее она сидит на лицензии от DBMS, и тем глубже
    она использует фичи этой DBMS (язык хранимых процедур особые режимы таблиц и партишенинга)
    и совершенно нет никакой надежды что миграция произойдет в один мышко-клик. Скорее наоборот.
    Миграция - это боль и слёзы и крупные платежи сектору разработки и облачным провайдерам.
    Баги и просадки перформанса в самых неожиданных местах БД.

    Хотя для вашего pet-project ORM вполне удобен особенно когда вы тестируете например веб-приложуху
    на H2 в перспективе с переходом на Postgres.
    Ответ написан
    Комментировать
  • Как ускорить запись в базу?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Тут скорее всего ничего нельзя сделать. Судя по всему используется Django ORM.
    А любые ORM библиотеки не подходят для массовой загрузки-выгрузки.
    Надо просто отказаться от ORM и работать на уровне БД (Mongo/MySQL)
    их собственными средствами пакетной загрузки.
    Ответ написан
  • В каких случаях стоит использовать ORM в go?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Я-бы начинал без всяких ормов. Тем более что Go исповедует философию простоты. А потом затащить Орм если надо.
    Ответ написан
    Комментировать