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 мс - это должно быть очень быстро, исходя из этого времени отклика, но затем оно значительно замедляется.