Go Api MongoDB против разницы в производительности PostgresSQL

Я работал над API-интерфейсом, написанным на Go, для приложения с естественной реакцией. Требования и рабочая нагрузка приложения довольно высоки, поэтому я должен убедиться, что у меня есть необходимая пропускная способность.

Я тестировал простой сценарий тестирования Apache и не могу понять, что происходит.

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

Это Postgres, выполняющий 100000 выборок с 100 параллелизмом:

Server Hostname:        localhost
Server Port:            1323

Document Path:          /users/1
Document Length:        186 bytes

Concurrency Level:      100
Time taken for tests:   26.742 seconds
Complete requests:      100000
Failed requests:        0
Keep-Alive requests:    100000
Total transferred:      33400000 bytes
HTML transferred:       18600000 bytes
Requests per second:    3739.41 [#/sec] (mean)
Time per request:       26.742 [ms] (mean)
Time per request:       0.267 [ms] (mean, across all concurrent requests)
Transfer rate:          1219.69 [Kbytes/sec] received

Connection Times (ms)
              min  mean[+/-sd] median   max
Connect:        0    0   0.1      0       4
Processing:     0   27  69.4      1     342
Waiting:        0   27  69.4      1     342
Total:          0   27  69.4      1     342

Percentage of the requests served within a certain time (ms)
  50%      1
  66%      1
  75%      1
  80%      1
  90%    203
  95%    214
  98%    223
  99%    228
 100%    342 (longest request)

=================

А вот Монго для тех же данных на той же машине:

Server Hostname:        localhost
Server Port:            1323

Document Path:          /users/5d5ff5a9de4880488b660a02
Document Length:        206 bytes

Concurrency Level:      100
Time taken for tests:   5.969 seconds
Complete requests:      100000
Failed requests:        0
Keep-Alive requests:    100000
Total transferred:      35400000 bytes
HTML transferred:       20600000 bytes
Requests per second:    16753.86 [#/sec] (mean)
Time per request:       5.969 [ms] (mean)
Time per request:       0.060 [ms] (mean, across all concurrent requests)
Transfer rate:          5791.86 [Kbytes/sec] received

Connection Times (ms)
              min  mean[+/-sd] median   max
Connect:        0    0   0.1      0       4
Processing:     0    6   1.7      6      26
Waiting:        0    6   1.7      6      26
Total:          0    6   1.7      6      29

Percentage of the requests served within a certain time (ms)
  50%      6
  66%      6
  75%      7
  80%      7
  90%      8
  95%      9
  98%     10
  99%     11
 100%     29 (longest request)

Что-то не так с Postgres? Есть ли какие-либо настройки, которые мне нужно сделать, чтобы настроить его?

3739,41 [#/ сек] (среднее) против 16753,86 [#/ сек] (среднее) кажется большим.

Структура базы данных sql против no-sql не проблема, мне нужно выбрать самый быстрый.

По какой-то причине я думал, что Postgres будет, по крайней мере, так же быстро, как Монго, но я ошибся, может кто-нибудь объяснить мне эти результаты, пожалуйста?

Редактировать: Кроме того, я не могу упустить тот факт, что Postgres имеет 80% 1 мс - это должно быть очень быстро, исходя из этого времени отклика, но затем оно значительно замедляется.

0 ответов

Другие вопросы по тегам