graphql / strapi: почему выборка идентификаторов модели с большими объектами json занимает так много времени? - PullRequest
0 голосов
/ 17 февраля 2019

У меня есть модель с именем «экзамен» и много ее экземпляров.Каждый экземпляр имеет большой объект json, называемый вопросами.Но когда я выбираю только идентификаторы и имена экзаменов, я вижу, что их объекты json делают выборку чрезвычайно медленной:

query {
  exams {
    name,
    _id,
  }
} 

Кажется, что просто доступ к конкретной модели, имеющей большой объект jsonзанимает вечно, даже если НЕ извлекается содержимое объекта JSON.

Я также замечаю, что если я получу данные из модели, имеющей отношение к некоторым экзаменам, то выборка этой модели тоже будет очень медленной.

Быстро только при извлечении модели, которая имеет отношения с моделью, которая сама имеет отношения с экзаменами.А именно, очень быстро можно получить только модели отношений третьей степени.

Имеет ли это какой-то смысл?Как мне исправить свои коллекции, чтобы я мог быстро получить список экзаменов.Кажется, что даже если я переместлю объект json каждого экзамена в связанную коллекцию, он все равно будет медленным

Заранее спасибо

1 Ответ

0 голосов
/ 17 февраля 2019

У вас проблемы с производительностью в приложении GraphQL.В своем вопросе вы не указываете причину проблемы.Вы должны найти узкое место.

Если проблема на уровне базы данных, то вы можете использовать улучшение своего экземпляра mlab MongoDB до лучшего.

Если проблема на уровне запроса, то вам нужно использовать проекция на ваш резольвер.Для этого есть замечательный пакет graphql-fields .

Если проблема в неправильной DataStructure, то вам нужно перестроить схему GraphQL или модели mongoose.

Если проблема в узле.js слой, то вам не следует блокировать цикл обработки событий.

...