SQL规约

2023-12-17 12:37:48


前言


SQL规约-索引

注意字段类型

防止因字段类型不同造成的隐式转换,导致索引失效

利用覆盖索引

利用覆盖索引来进行查询操作,避免回表

利用有序性

如果有 order by 的场景,请注意利用索引的有序性

禁模糊

页面搜索严禁左模糊或者全模糊,如果需要请走搜索引擎来解决。

超过三个表禁止 join

SQL规约-count

拒绝替代

不要使用 count(列名)或 count(常量)来替代count(*)

计算不重复行数

count(distinct col) 计算该列除 NULL 之外的不重复行数

当值全是NULL时

当某一列的值全是NULL时,count(col)的返回结果为 0,但sum(col)的返回结果为NULL

SQL规约-分页

若 count 为 0

分页查询逻辑时,若count 为 0 应直接返回

优化超多分页场景

利用延迟关联或者子查询优化超多分页场景

SQL规约-null值

使用 ISNULL()来判断是否为 NULL 值

NULL< >NULL

NULL< >NULL 的返回结果是 NULL,而不是 false

NULL=NULL

NULL=NULL 的返回结果是 NULL,而不是 true

NULL< >1

NULL< >1 的返回结果是 NULL,而不是 true

SQL规约-避坑指南

不得使用外键与级联,一切外键概念必须在应用层解决

禁止使用存储过程,存储过程难以调试和扩展,更没有移植性

数据订正时,要先 select,避免出现误删除,确认无误才能执行更新语句

只要涉及多个表,都需要在列名前加表的别名(或表名)进行限定

SQL 语句中表的别名前加 as,并且以 t1、t2、t3、…的顺序依次命名

in 后边的集合元素数量,控制在1000 个之内


总结

提示:这里对文章进行总结:
例如:以上就是今天要讲的内容,本文仅仅简单介绍了pandas的使用,而pandas提供了大量能使我们快速便捷地处理数据的函数和方法。

文章来源:https://blog.csdn.net/i973635025/article/details/135042862
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。