Мне действительно нужна Prisma ORM для graphql?

Недавно я начал изучать graphql, что на данный момент считаю очень удобным. Однако когда дело доходит до подключения к object-relational или object-oriented системе управления базами данных, возникает небольшая сложность в зависимости от основ каждой СУБД. По этой причине я начал искать решения, которые сделали бы процесс более эффективным, и нашел Prisma. Я понимаю, что prisma выполняет всю тяжелую работу по сопоставлению моих данных с любой базой данных, однако я вижу, что это действует как промежуточный уровень между моим сервером и базой данных. Итак, мой вопрос:

Действительно ли стоит использовать Prisma в приложении, и если да, то как я могу объяснить накладные расходы, которые добавляет этот промежуточный уровень (с точки зрения производительности)?


person Marios Simou    schedule 25.05.2019    source источник
comment
Привет, @MariosSimou, если у тебя больше нет вопросов, ты не возражаешь принять мой ответ? :)   -  person nburk    schedule 11.06.2019


Ответы (1)


Я работаю в Prisma и хотел бы ответить на это.

Самым большим преимуществом Prisma при написании сервера GraphQL является то, что он экономит огромное количество шаблонов CRUD, которые в противном случае вам пришлось бы записывать в свои преобразователи. В сочетании с GraphQL Nexus , он позволяет вам разработать схему GraphQL программно, опираясь на сгенерированные строительные блоки CRUD, а также предоставляет вам типобезопасный API для доступа к вашей базе данных.

как я могу объяснить накладные расходы, которые добавляет этот промежуточный уровень (с точки зрения производительности)?

При размещении рядом с вашим сервером приложений сервер Prisma на самом деле не снижает производительности. Также обратите внимание, что в настоящее время мы переписываем механизм запросов, который работает на сервере Prisma в Rust, это сделает сервер Prisma необязательным, и вы сможете использовать Prisma как простую библиотеку (аналогично тому, как вы использовали бы TypeORM или Sequelize. ). Затем механизм запросов запускается как двоичный файл на том же хост-компьютере, что и ваш веб-сервер, и оттуда подключается к вашей базе данных.

ОБНОВЛЕНИЕ: 22 июля 2019 г.: мы выпустили первую версию Prisma 2. Вы можете найти всю информацию здесь.

Я бы рекомендовал вам ознакомиться с документами по GraphQL Nexus, чтобы узнать подробнее о конкретных рабочих процессах. Пожалуйста, дайте мне знать, если у вас возникнут дополнительные вопросы, я буду рад помочь :)

person nburk    schedule 25.05.2019
comment
Если я прав, GraphQL Nexus является новейшей версией prisma и пытается интегрировать ее в существующий работающий сервер, а не отделять ее от контейнера. Я прав? Спасибо за ваш ответ. Я проведу некоторое время в GraphQL Nexus и дам свой отзыв - person Marios Simou; 26.05.2019
comment
GraphQL Nexus - это новейшая версия prisma, которая пытается интегрировать ее в существующий работающий сервер, а не отделять ее от контейнера. Это не совсем правильно. GraphQL Nexus - это простая библиотека npm для построения схем GraphQL (очень похожих на graphql-js) в сначала код. Его можно использовать с Prisma или без него. Например, если вы используете его без Prisma, вы можете использовать Sequelize или написать простой SQL для взаимодействия с БД в ваших преобразователях. - person nburk; 27.05.2019
comment
Запуск Prisma без необходимого серверного компонента будет новой функцией, которая будет включена через несколько недель. - person nburk; 27.05.2019
comment
@nburk, пожалуйста, обновите этот статус переписывания механизма запросов? ссылка на проблему с GitHub была бы замечательной. Спасибо - person Antoni4; 14.07.2019
comment
Привет, @ Antoni4, мы выпустили первую предварительную версию Prisma 2 (включая переписанный механизм запросов) несколько недель назад. Вы можете найти всю информацию здесь: github.com/prisma/prisma2 - person nburk; 22.07.2019