优化sql语句主要是以下几点
1.最大化利用索引。
2.尽可能避免全表扫描。
3.减少无效数据的查询。
使用chatgpt优化下列sql看看是否能包括上述提到的三点
SELECT * FROM t WHERE username LIKE '%陈%'
将这段sql扔进chatgpt得到的回答如下
chatgpt给出了三个优化的建议,如果不清楚为什么可以继续问它优化的理由
回答如上,利用索引、减少不必要的数据传输、避免全表扫描,三条优化建议都有在回答中体现。
尝试使用chatgpt优化下面这段sql
SELECT * FROM t WHERE id = 1
UNION
SELECT * FROM t WHERE id = 3 ;
猜测回答的sql如下
SELECT column1, column2, column3 FROM t WHERE id = 1
UNION
SELECT column1, column2, column3 FROM t WHERE id = 3;
会建议将*换成具体的列
但是chatgpt给出了别的建议,希望根据实际情况来选择是使用union 还是 union all
提出当确定结果没有重复值的时候可以使用union all
当结果可能有重复值可以使用union,union会去重但是性能会有略微的降低。
chatgpt的结果也会出现不准确的,结果需要调教。
向chatgpt提问:“左表3条记录,右表2条记录,2个表做左连接,结果是几条记录?”
回答如下
当继续提问结果是否可能是笛卡尔积
回答如下
总结:对于常规简单的sql优化chatgpt考虑会比较齐全,可能会想到平时个人没有想到的点,但是一些结果可能并不是准确的,需要人为的去引导。