有没有这样的 sql 分析工具, mysql 举例

6 天前
 pol

假如我拥有 A 、B 两张表

当我查询

select * from A left join B on A.id = B.aid where A.name = '名字'

我将这里的 sql 提供给分析工具,他给到我的结果是这样的

第一步
查询出 a 表的所有数据,用数据表格呈现出来 例如
|id| name|
|---|----|
|1 |啊 |
|2 | 是的|

第二步 查询出 b 表的所有数据,(好像根据原理来讲是直接那 on 的条件来查 b 表)
|aid| name|
|---|----|
|1 | 名字|
|2 | 是的|
|3 | 的撒|
如果是根据 on 的条件来查询的话,结果大致是这样的(过滤掉了 aid 为 3 的)
|aid| name|
|---|----|
|1 |名字 |
|2 | 是的|

然后是第四步 两个表连接
|id| a.name|aid| b.name|
|---|----|---|----|
|1 |啊 |1 |名字 |
|2 |是的|2 | 是的|

最后是第五步 过滤 where 得到
|id| a.name|aid| b.name|
|---|----|---|----|
|1 |啊 |1 |名字 |

大致意思是这样的,将 sql 的执行过程中的每一个步骤出来的数据集输出出来,用 gpt 是可以做到的 我想问问有没有现成的这种工具,最好是基于本地的,如果能连数据库更好

我认为这样更有利于大家优化 sql ,或者容易看出哪里写错了

477 次点击
所在节点    问与答
2 条回复
dongruixuan
6 天前
postgres 的话,这种 visualizer 感觉就很够用了 https://pev2.pages.dev/ 。是不是不太需要把数据集显示出来
newaccount
6 天前
不现实
脑子中静态分析的结果与数据库实际执行差距可能非常大
数据量不同,引擎是否选择使用索引都不一定的
别想了,看执行计划得了

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/1089322

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX