Очень медленно от запроса к c.JSON - PullRequest
0 голосов
/ 02 июля 2019

Я запрашиваю свою базу данных, используя Gorm, а затем использую c.JSON из gin для компоновки структур в json.

Это большой запрос с не таким большим результатом (<100k), и у меняпроблема со временем (6-10 секунд), чтобы упорядочить данные. </p>

Я не знаю, с чего начать, чтобы решить проблему.

    [2019-07-02 14:41:04]  [946.63ms]   SELECT  big slow query
    [62861 rows affected or returned ]
    [GIN] 2019/07/02 - 14:41:11 | 200 |   7.92347114s |  ip | GET      /api/date/2019-05-30


    [2019-07-02 14:40:44]  [660.47ms]   SELECT big slow query
    [7583 rows affected or returned ]
    [GIN] 2019/07/02 - 14:40:54 | 200 | 10.841096216s |  ip | GET      /api/dailies

    [2019-07-02 14:43:49]  [154.13ms]   SELECT simple query
    [11 rows affected or returned ]
    [GIN] 2019/07/02 - 14:43:49 | 200 |  158.256792ms |  ip | GET      /api/dailycount

Как вы можете видеть запрос 1и 2 разрешения за 600-900 мс, это медленно, но может быть оптимизировано отдельно.Проблема в том, что ответ сервера занимает 7,9 и 10,8 с ..!Для меньшего запроса нет большой разницы, но я не понимаю, почему это происходит.

Код перехода для одного из маршрутов довольно прост и аналогичен для всех маршрутов:

    var alertList []AlertJson
    dbInstance.Debug().Raw("SELECT big query").Scan(&alertList)
    c.JSON(http.StatusOK, gin.H{"alerts": alertList}) 

10,2 секунды для второго запроса с 7583 стрелками на маршал мне кажутся довольно безумными.

1 Ответ

0 голосов
/ 04 июля 2019

Произошло огромное отставание от моего провайдера сервера, и фактически 10 секунд - это действительно задержка для получения данных, как упомянул Питер.

...