gaussdb(for mysql)剪枝功能,让查询性能提升70倍!-编程思维
作者,祝青平,华为云数据库内核高级工程师。擅长数据库优化器内核研发,9年数据库内核研发经验,参与多个TP以及AP数据库的研发工作。 近日,华为云数据库社区下面有这样一条用户提问留言:请问,如何通过MySQL提升DISTINCT,尤其是多表连接下DISTINCT的查询效率? 在回答这个问题之前,我们先了解一下DISTINCT。 在SQL语句中,DISTINCT关键词用于返回唯一不同的值,使用场景多
morethink program
作者,祝青平,华为云数据库内核高级工程师。擅长数据库优化器内核研发,9年数据库内核研发经验,参与多个TP以及AP数据库的研发工作。 近日,华为云数据库社区下面有这样一条用户提问留言:请问,如何通过MySQL提升DISTINCT,尤其是多表连接下DISTINCT的查询效率? 在回答这个问题之前,我们先了解一下DISTINCT。 在SQL语句中,DISTINCT关键词用于返回唯一不同的值,使用场景多
本文分享自华为云社区《【调优实践】SQL改写消除相关子查询》,作者: 门前一棵葡萄树 。 一、子查询 GaussDB(DWS)根据子查询在SQL语句中的位置把子查询分成了子查询、子链接两种形式。 子查询SubQuery:对应于查询解析树中的范围表RangeTblEntry,更通俗一些指的是出现在FROM语句后面的独立的SELECT语句。 子链接SubLink:对应于查询解析树中的表达式,更通俗
本文分享自华为云社区《GaussDB(DWS)性能调优:row_number() over(p)-rn=1性能瓶颈发现和改写套路》,作者:Zawami 。 1、改写场景 本套路应用于子查询中含有row_number() over(partition by order by) rn,并仅把rn列用于分类排序后筛选最大值的场景。 2、性能分析 GaussDB中SQL语句的执行很多时候是流式的,即对每
本文分享自华为云社区《GaussDB(DWS)性能调优:表扫描时过滤行数过多引起的性能瓶颈问题案例》,作者: O泡果奶~ 。 1、【问题描述】 SQL语句执行过程中,对12亿数据量的大表进行扫描,过滤99%的数据仅留617行数据,性能瓶颈位于扫描该表这里。 2、【原始语句】 set search_path = 'bi_dashboard'; WITH F_SRV_DB_DIM_PRD_D
本文分享自华为云社区《Proxy下的Prepare透传,让GaussDB(for MySQL)更稳固,性能更卓越》,作者: GaussDB 数据库 。 1.引言 在很多业务场景下,数据库应用程序处理大量相同的SQL语句——只需更改SQL语句中的文字或变量值。例如:使用相同的SQL模板进行WHERE查询,SET 更新和VALUES 插入等操作。数据库内部收到SQL语句后,需要对语句进行解析,即翻译
本文分享自华为云社区《GaussDB(DWS)性能调优:MERGE场景下语句不下推引起的性能瓶颈问题案例》,作者:O泡果奶~。 1、【问题描述】 语句执行时间过长,且该语句performance执行计划中SQL Diagnostic Information显示SQL语句不下推,理由为:Type of Record in dual that is not a real table can not
本文分享自华为云社区《GaussDB(DWS)性能调优:Sort+Groupagg聚集引起的性能瓶颈案例》,作者: O泡果奶~ 。 本文针对SQL语句长时间执行不出来,且verbose执行计划中出现Sort+GroupAgg聚集方式的案例进行分析。 1、【问题描述】 语句执行时间过长,2300s+也无法得出结果。从verbose执行计划可以看出存在sort聚合。 2、【原始语句】 SELECT
================================================ 1、SQL查询一年之内的数据记录 select * from 表名 where CreateDate<GETDATE() and CreateDate>DATEADD(yy, -1, GETDATE()) 2、--查询当天记录: select * from info
摘要:本文主要讲解数仓运维中遇到单SQL磁盘空间管控问题的解析和方案。 本文分享自华为云社区《GaussDB(DWS)运维 -- 单SQL磁盘空间管控》,作者: 譡里个檔。 【问题描述】 执行部分SQL语句时出现如下报错信息(具体数值可能因为配置有差异),本文针对根因和场景触发场景,确定触发此类问题的根因 The space used on DN (209715224 kB) has excee
摘要:本文就针对因USING子句的书写方式可能导致MERGE INTO语句的执行不下推的场景,对USING子句的SQL语句进行改写一遍,整个SQL语句可以下推。 本文分享自华为云社区《GaussDB(DWS)运维 -- values子句做MERGE数据源导致SQL执行不下推的改写方案》,作者: 譡里个檔。 现网做实时接入的时候,有的时候会使用MERGE INTO语句实现类似UPSERT的功能。这
MySql数据库是比较常用的关系型数据库,操作用的是sql语句,下面来说一说MySql的一些基本操作 MySql数据库是一种C/S型的模式,即客户端/服务器端,对应到具体应用上,便是bin目录下的mysql.exe和mysqld.exe,mysql是客户端,mysqld是服务器端。 所以先要启动mysqld.exe服务,然后用mysql.exe登陆。 1.mysql登陆 打开cmd命令窗口,
摘要:本文重点介绍单个SQL语句持续执行慢的场景。 本文分享自华为云社区《GaussDB(DWS) SQL性能问题案例集》,作者:黎明的风。 本文重点介绍单个SQL语句持续执行慢的场景。我们可以对执行慢的SQL进行单独分析,SELECT、INSERT、UPDATE等语句都可以使用explain verbose + SQL语句输出查询计划来进行分析,这样只输出查询计划,语句不会被实际的执行。 如果
【摘要】 SQL 虽然是针对记录的集合进行运算, 但在记录的多次利用以及有序运算却经常要重复计算,效率不佳。而集算器 SPL 则要直观许多,可以按自然思维习惯写出运算。这里对 SQL 和集算器 SPL 在记录的利用及有序运算方面进行了对比,如果需要了解更多,请前往乾学院:SQL 难点解决:记录的引用! 1、 求最大值 / 最小值所在记录 示例 1 :计算招商银行 (600036)