Advertisement

SQL的最佳实践是什么?

阅读量:

本内容将持续补充与SQL优化相关的知识,欢迎共同探讨。

SQL的执行流程如下:
SQL语句首先经过缓存处理,随后进行权限验证,最终将结果返回给客户端。
若未命中缓存,则SQL语句依次经历解析器(负责语法分析)、预处理器(执行检查与语法分析)、查询优化器(生成查询计划)、查询引擎等步骤,最终将结果返回给客户端。

SQL语句的执行顺序包含两种常见情况:
第一种情况依次为from、on、join、where、over()(窗口函数)、select、distinct、order by、limit。
第二种情况依次为from、on、join、where、group by、sum, avg, count(聚合函数)、having、select、distinct、order by、limit。

1. count(*) 、 count(1)、count(列名) 区别

  • count(*)与count(1)在执行效率方面表现相当,二者之间的差异可以忽略不计
    • count(*)与count(1)在进行数据统计时,会将包含空值的记录一并计入,而count(列名)则仅对非空字段进行计数,不会涉及空值记录
    • 当列名被设定为主键时,使用count(列名)的执行速度将优于count(1)和cou

全部评论 (0)

还没有任何评论哟~