go - 为什么查询 1400 个实体需要 1.5 秒?
问题描述
我有一个使用数据存储的 GAE 应用程序。这是一个非常低流量的应用程序(约 1 个请求/秒或更少)。
数据存储并不大,总共可能 300MB,但每秒读/写次数也很少。
然而,读取速度是非常糟糕的。如果我做:
q := datastore.NewQuery("Sale")
var sales []IndividualSale
keys, err := client.GetAll(ctx, q, &sales)
简单地返回所有“销售”类型的实体需要 1.5秒- 总共只有约 1400 个!返回 1400 个实体(每个实体有大约 10 个属性)的 1.5 秒是非常糟糕的性能。
我怎样才能加快速度?我正在使用"cloud.google.com/go/datastore"
(不是我听说更快但已弃用的旧版 appengine 模块)和 golang 1.15
。
这看起来对吗?我是否需要将其添加到index.yaml
(我认为仅当您的查询需要访问特定属性时才需要?)。
编辑:
在 Chrome Devtools(请求需要 1-1.5 秒才能完成)和日志语句中都可以观察到延迟:
q := datastore.NewQuery("Sale")
var sales []IndividualSale
start := time.Now()
keys, err := client.GetAll(ctx, q, &sales)
log.Debug("Took ", time.Since(start)) // Prints "Took 1.320244586s"
Edit2:这是有问题的查询的云跟踪:
解决方案
推荐阅读
- javascript - 如何在 ui-grid 角度选择中获取字符串的值并将其传递给 Spring 控制器
- python - 在python的元组中没有重复的随机选择
- html - 如何在使用 Bootstrap 4 加载页面后禁用加载器/微调器?
- javascript - Node.JS:具有多个不同 Socks5 问题的 Puppeteer 多线程实例
- scala - 在scala中覆盖父方法
- machine-learning - 值错误 - 检查目标时出错 - LSTM
- q# - 你如何接受用户输入?
- django - 从外键 django 查询父级
- android - 如何删除我的布局下方的空白空间?
- r - 如何在 R 中使用 sum 函数?