Я тестирую EdgeDB локально, мой хост - достойный MacBook Pro, а база данных работает в docker:
version: "3.7"
services:
edgedb-server:
image: edgedb/edgedb
ports:
- "5656:5656"
- "8888:8888"
volumes:
- type: bind
source: /Users/dima.tisnek/edgedb-data
target: /var/lib/edgedb/data
consistency: delegated
Я создал таблицу с ~ 20 столбцами, 10 str
, 3 bool
, 2 int16
, 3 datetime
(в основном, населенный); и 2 MULTI str
(не заполнено).
Я загрузил 35 тыс. строк, всего JSON размер данных 18 МБ.
Я тестирую пропускную способность чтения с помощью этой функции:
async def main():
c = await edgedb.async_connect("edgedb://edgedb@localhost")
d = await c.fetchall("""
SELECT User {
domain,
username,
# 16 more columns
};
""")
logging.warning("got %s records", len(d))
И я получаю ~ 1.1s для 35k строк. Это 30 000 строк / с или <20 МБ / с. </p>
Это медленно? Это быстро?
Чтобы быть справедливым, я недавно обнаружил, что производительность AWS DynamoDB достигает максимальной скорости 1 МБ / с при такой настройке (сообщение в блоге Amazon) , поэтому EdgeDB выигрывает десять фолд. В то же время я вспоминаю, как работал сервер MySQL / InnoDB и думал о производительности в миллионах или строках в десятилетие go. То есть EdgeDB кажется медленным, может быть, в тридцать раз?