怎么让网站被收录,建站公司推荐首推万维科技,长沙的网站建设公司哪家好,wordpress修改地址无法访问除了高斯其它关系型数据可也一样可以使用 官方链接#xff1a;EXPLAIN_数据仓库服务 GaussDB(DWS)_8.2.0_DML语法_华为云 参考链接#xff1a;MySQL大数据量分页查询方法及其优化_mysql大数据量分页查询优化-CSDN博客
数据量过大#xff0c;分页查询优化
背景#xff1a;…除了高斯其它关系型数据可也一样可以使用 官方链接EXPLAIN_数据仓库服务 GaussDB(DWS)_8.2.0_DML语法_华为云 参考链接MySQL大数据量分页查询方法及其优化_mysql大数据量分页查询优化-CSDN博客
数据量过大分页查询优化
背景数据仓库采用高斯DWSAPI平台采用DBAPI平台限制了一个请求最大3S因此超过3S的请求将会被取消掉请求3S并不是SQL执行3S经过验证SQL执行九百多毫秒请求就会被杀掉当前表数据大概四百多万。
直接使用limit加offset
explain ANALYSE VERBOSE select * from 表名 limit 10 offset 402243;
-- 耗时Total runtime: 8578.479 ms
上面的SQL是最初的SQL有很多问题首先列没有裁剪其次没有建立索引也没有使用主键因此下面的优化步骤首先为这张表建一个主键索引再进行列裁剪
列裁剪加索引
explain ANALYSE VERBOSE select a, b,c, d, e
from 表名 limit 10 offset 402243
-- 耗时Total runtime: 1590.931 ms
通过列裁剪加主键索引耗时已经从8秒多减少到了1.5秒查询性能提升了很多但是仍然达不到要求继续分析由于已经建立了索引那么是否可以用自连接第一步直接查索引第二步取命中部分数据的所需字段。
索引子查询
explain ANALYSE VERBOSE select a,b,c,d,e
from 表名
where a in(select a from 表名 limit 10 offset 402243)
-- 耗时Total runtime: 146.485 ms现在速度已经优化到了1.5毫秒左右能满足我们的需求当然用join的写法也是可以的
explain ANALYSE VERBOSE select a,b,c,d,e
from 表名 t1 JOIN
(select a from 表名 limit 10 offset 402243) t2
on t1.a t2.a
-- 耗时Total runtime: 171.609 ms
使用join和子查询相差不大都能满足我们的需求当然我们的平台是基于华为高斯DWS数据库设计的在过程中也考虑了华为的优化可参考优化查询性能概述_数据仓库服务 GaussDB(DWS)_性能调优_华为云 高斯是分布式数据库将会对数据进行分布式存储会增加网络之间传输的性能损耗因此尝试了下每个节点都保存一份数据是否能增加查询速度这个做法的弊端在于数据会在每个查询节点都会存储一份造成存储资源的浪费在实际测试中查询性能并不能得到提升。