GaussDB数据库编程规范-关联查询&子查询


风晓
风晓 2024-01-14 10:34:37 50845 赞同 0 反对 0
分类: 资源 标签: 国产数据库
GaussDB数据库编程规范-关联查询&子查询

关联查询

1.多表关联嵌套深度必须小于8。关联嵌套过深,容易产生慢sql,应从业务层考虑优化。
2.表关联查询必须明确指定各表的连接条件(ON),以避免产生笛卡尔积。例如在MySQL中,JOIN与CROSS JOIN和INNER JOIN等价,但是在SQL标准中,JOIN仅与INNER JOIN等价,必须配合使用ON连接条件。
3.关联时,应该根据SQL标准指明连接方式,避免直接使用JOIN关键词,而是使用CROSS JOIN, INNER JOIN, LEFT JOIN, RIGHT JOIN等。
4.多表关联查询时, 必须应对表添加使用别名,保证语句逻辑清晰,便于维护。
5.不同字段的比较开销不同,关联字段应尽量使用比较效率高的字段类型。数值类型的比较效率远高于字符串类型。在数值类型中,整型效率高于NUMERIC和浮点类型。
6.关联字段应为相同数据类型,避免存在隐式类型转换影响执行效率。
7.少用嵌套子查询,尽量使用表关联,因为子查询会产生临时表,对SQL性能影响较大。

8.对于关联列上存在大量NULL值的情况,建议在WHERE条件中增加关联列IS NOT NULL的过滤条件,能够提升执行效率。

 

 

子查询

1.禁止一条SQL语句中,出现重复子查询语句。

2.少用标量子查询。

标量子查询指结果为1个值,并且条件表达式为等值的子查询。

示例:不符合规范的语句

  •  

SELECT * FROM t1 WHERE id = (SELECT id FROM t2 LIMIT 1));

 

上述语句建议业务拆分为两条SQL语句,先执行子查询。

3.避免在SELECT目标列中使用子查询,可能导致计划无法下推影响执行性能。

4.子查询嵌套深度建议不超过2层。

由于子查询会带来临时表开销,过于复杂的查询应考虑从业务逻辑上进行优化。

如果您发现该资源为电子书等存在侵权的资源或对该资源描述不正确等,可点击“私信”按钮向作者进行反馈;如作者无回复可进行平台仲裁,我们会在第一时间进行处理!

评价 0 条
风晓L1
粉丝 1 资源 2038 + 关注 私信
最近热门资源
桌面通用(全架构)【在双系统环境下隐藏Windows启动菜单】操作指南  2057
银河麒麟桌面操作系统V10(SP1)2203-如何进行远程桌面互访?  1994
银河麒麟桌面操作系统【保留数据盘重装系统】  1804
麒麟系统各种原因开不了机解决(合集)  1587
桌面通用(全架构)【rpm包转成deb包】操作方法  931
银河麒麟桌面操作系统 V10-SP1 双系统安装 efi 分区问题  915
统信系统安装(合集)  853
统信桌面专业版【手动分区安装UOS系统】介绍  845
统启动异常几种类型(initramfs 模式)  688
最近下载排行榜
桌面通用(全架构)【在双系统环境下隐藏Windows启动菜单】操作指南 0
银河麒麟桌面操作系统V10(SP1)2203-如何进行远程桌面互访? 0
银河麒麟桌面操作系统【保留数据盘重装系统】 0
麒麟系统各种原因开不了机解决(合集) 0
桌面通用(全架构)【rpm包转成deb包】操作方法 0
银河麒麟桌面操作系统 V10-SP1 双系统安装 efi 分区问题 0
统信系统安装(合集) 0
统信桌面专业版【手动分区安装UOS系统】介绍 0
统启动异常几种类型(initramfs 模式) 0
作者收入月榜
1

prtyaa 收益393.72元

2

zlj141319 收益220.97元

3

1843880570 收益214.2元

4

IT-feng 收益213.03元

5

风晓 收益208.24元

6

777 收益172.82元

7

Fhawking 收益106.6元

8

信创来了 收益105.89元

9

克里斯蒂亚诺诺 收益91.08元

10

技术-小陈 收益79.5元

请使用微信扫码

加入交流群

请使用微信扫一扫!