110-与chatgpt探讨SQL优化

2023-11-17 19:32:11 浏览数 (1)

我问chatgpt, 能不能帮我优化下面的SQL:

chatgpt给我回复了下面结果:

我看了这个写法, 跟原SQL不等价,于是它又做了调整:

上面这个回答明显还是不等价,但是有求必应的chatgpt硬着头皮也要回复,于是又变成了下面这样:

我又质疑它的不等价,这次好像终于等价了,但是与原来的SQL在性能上应该是没什么区别的, 逻辑上还略显复杂:

我不想难为它了, 把我的写法给了它:

chatgpt对我的写法做了点评:

我还尝试了另外一种使用分析函数的写法:

相比之下, 前面的group by写法要略好一些(分析函数消耗内存较多).两种改写方法都只需要一次表扫描, 比原SQL写法有明显的改进.

总结:

chatgpt能辅助做很多事情, 但是有些严谨的事情, 还是要慎重, 比如SQL改写的等价性等, 如果不具备分辨能力,很容易得出不等价的优化方法.

SQL写法对数据库性能至关重要,很多开发人员只追求实现业务逻辑,较少考虑性能问题, 数据量一旦增大, 业务执行效率快速下降,然后又把希望寄托在硬件的改善, 这些都是不可取的.

0 人点赞