我在本地测试 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
(未填充)。
我已经加载了 35k 行,总 JSON 数据大小为 18MB。
我正在使用此功能测试读取吞吐量:
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))
我得到 35k 行的约 1.1 秒。那是 30k 行/秒或 <20MB/秒。
这慢吗?这速度快吗?
公平地说,我最近发现生产 AWS dynamodb 在这种设置(亚马逊博客文章)中以 1MB/s 的速度达到顶峰,因此 EdgeDB 赢得了十倍。同时,我还记得运行 MySQL/InnoDB 服务器并考虑十年前数百万或行/sa 的性能。所以 EdgeDB 似乎慢了 30 倍?