Mysql|postgreSql 执行计划
项目开发中,性能是我们比较关注的问题,特别是数据库的性能;作为一个开发,经常和SQL语句打交道,想要写出合格的SQL语句,我们需要了解SQL语句在数据库中是如何扫描表、如何使用索引的。
0:Index Scan 索引扫描
表结构
索引:
1.最简单的SQL语句
select * from table2004
执行结果:
2.使用条件
select count(ReceiveDate) from table2004 where receivedate='2022-02-18 16:55:07.0'
查询结果:2 使用时间:70ms
3:使用Group by分组条件
select receivedate from table2004group by receivedate
查询结果: 使用时间:28ms
4:使用Group by分组条件并且使用条件
select EXTRACT(YEAR from ReceiveDate) from table2004 where EXTRACT(week from ReceiveDate)='6.0' group by EXTRACT(YEAR from ReceiveDate),EXTRACT(week from ReceiveDate),goodsname_level2
查询结果 使用时间1500ms
5:使用Left执行上同等查询
select left(to_char(ReceiveDate,'yyyy-MM'),4) from table2004 group by left(to_char(ReceiveDate,'yyyy-MM'),4)
查询结果 使用时间7880ms
猜想:使用了函数之后查询变得特别慢
五、type 提供了判断查询是否高效的重要依据依据.