n1bff
1
我创建了一些数据探索器查询。
如果在管理员后端执行它们,GUI 会显示数据库查询本身非常快的执行时间,例如“查询耗时 7.9 毫秒。”
我的浏览器的网络日志显示,例如访问了 https://example.com/admin/plugins/explorer/queries/1/run,并且获取结果耗时是其 1-2 数量级 的时间,例如 150 毫秒。
当我 curl 这样的查询时,耗时更长,大约是管理员面板中运行查询时间的 两倍。
如何才能让数据探索器查询能够快速检索,而没有那么大的开销?
1 个赞
Falco
(Falco)
2
根据您提供的信息,我认为这些是简单的查询(在 RDBMS 中执行速度快),但返回的行数很多(在后端反序列化和传输速度慢)。
如果当前性能阻碍了您的用例,您可以探索许多不同的解决方案:
3 个赞
sam
(Sam Saffron)
3
我们有一些特殊的查找功能,用于将某些列名(user_id、post_id 等)别名为 post_id1 等。
1 个赞
n1bff
4
谢谢大家!
如果我的查询只返回一行,结果也是一样的。例如,一个返回单个整数的查询,在管理员后台的 Data Explorer 面板中运行需要 9 毫秒,通过 curl 从外部针对 Data Explorer API 运行则需要 200 毫秒。
我非常希望避免这样做,我使用 Data Explorer 是因为它在论坛上被推荐为一个从数据库获取信息的不错方式,并且有一个运行良好的 API。
我的查询在 JOIN 中使用了它们,但在结果集中没有使用。SELECT 只有一个列,并且是一个新计算出来的、具有任意名称的列。
sam
(Sam Saffron)
5
NGINX 说请求的服务器时间是什么,这可能是网络问题吗?
n1bff
6
假设这些是 HTTP 状态码右侧 3 位数的浮点数(例如,... 200 642 "-" **0.107 0.108** "system" ...,我用星号突出显示),它们大约是后端报告的查询时间的 10 倍,并且大约是我从客户端 curl 所需时间的一半。