暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

GaussDB数据库关联查询使用说明

db_user 2023-10-27
189

1、多表关联嵌套深度必须小于8。

2、关联嵌套过深,容易产生慢sql,应从业务层考虑优化。
表关联查询必须明确指定各表的连接条件(ON),以避免产生笛卡尔积。
例如在MySQL中,JOIN与CROSS JOIN和INNER JOIN等价,但是在SQL标准中,JOIN仅与INNER JOIN等价,必须配合使用ON连接条件。
反例:如下2个示例会造成笛卡尔积查询
SELECT * FROM TABLE1 A , TABLE2 B;
SELECT * FROM TABLE1 A JOIN TABLE2 B ON 1=1;

3、关联时,应该根据SQL标准指明连接方式,避免直接使用JOIN关键词,而是使用CROSS JOIN, INNER JOIN, LEFT JOIN, RIGHT JOIN等。

4、多表关联查询时, 必须应对表添加使用别名,保证语句逻辑清晰,便于维护。

5、不同字段的比较开销不同,关联字段应尽量使用比较效率高的字段类型。数值类型的比较效率远高于字符串类型。 在数值类型中,整型效率高于NUMERIC和浮点类型。

6、关联字段应为相同数据类型,避免存在隐式类型转换影响执行效率。

7、少用嵌套子查询,尽量使用表关联,因为子查询会产生临时表,对SQL性能影响较大。

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

「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论