当前位置: 首页 > news >正文

二级网站建设管理制度关键词优化简易

二级网站建设管理制度,关键词优化简易,马鞍山建设集团有限公司网站,做视频网站一般多少钱ClickHouse 的 SQL 优化规则是基于RBO(Rule Based Optimization),下面是一些优化规则 1 准备测试用表 1)上传官方的数据集 将visits_v1.tar和hits_v1.tar上传到虚拟机,解压到clickhouse数据路径下 // 解压到clickhouse数据路径 sudo tar -xvf…

ClickHouse 的 SQL 优化规则是基于RBO(Rule Based Optimization),下面是一些优化规则

准备测试用表

1上传官方的数据集

visits_v1.tarhits_v1.tar上传到虚拟机,解压到clickhouse数据路径下

// 解压到clickhouse数据路径

sudo tar -xvf hits_v1.tar -C /var/lib/clickhouse
sudo tar -xvf visits_v1.tar -C /var/lib/clickhouse//修改所属用户
sudo chown -R clickhouse:clickhouse /var/lib/clickhouse/data/datasets
sudo chown -R clickhouse:clickhouse /var/lib/clickhouse/metadata/datasets

2重启clickhouse-server

sudo clickhouse restart

3执行查询

clickhouse-client --query "SELECT COUNT(*) FROM datasets.hits_v1"

clickhouse-client --query "SELECT COUNT(*) FROM datasets.visits_v1"

注意:官方的tar包,包含了建库、建表语句、数据内容,这种方式不需要手动建库、建表,最方便。

hits_v1表有130多个字段,880多万条数据

visits_v1表有180多个字段,160多万条数据

COUNT 优化

在调用 count 函数时如果使用的是 count() 或者 count(*),且没有 where 条件则会直接使用 system.tables  total_rows,例如:

EXPLAIN SELECT count()FROM datasets.hits_v1;Union
  Expression (Projection)
    Expression (Before ORDER BY and SELECT)
      MergingAggregated
        ReadNothing (Optimized trivial count)

注意 Optimized trivial count ,这是对 count 的优化。

如果 count 具体的列字段,则不会使用此项优化:

EXPLAIN SELECT count(CounterID) FROM datasets.hits_v1;Union
  Expression (Projection)
    Expression (Before ORDER BY and SELECT)
      Aggregating
        Expression (Before GROUP BY)
          ReadFromStorage (Read from MergeTree)

消除子查询重复字段

下面语句子查询中有两个重复的 id 字段会被去重:

EXPLAIN SYNTAX SELECT 
   a.UserID,
   b.VisitID,
   a.URL,
   b.UserID
   FROM
   hits_v1 AS a 
   LEFT JOIN ( 
    SELECT       
      UserID,        
      UserID as HaHa,       
      VisitID   
    FROM visits_v1) AS b 
   USING (UserID)
   limit 3;//返回优化语句:
SELECT 
    UserID,
    VisitID,
    URL,
    b.UserID
FROM hits_v1 AS a
ALL LEFT JOIN 
(
    SELECT 
        UserID,
        VisitID
    FROM visits_v1
) AS b USING (UserID)
LIMIT 3

4 谓词下推

当group by有having子句,但是没有with cube、with rollup 或者with totals修饰的时候,having过滤会下推到where提前过滤。例如下面的查询,HAVING name变成了WHERE name,在group by之前过滤:

EXPLAIN SYNTAX SELECT UserID FROM hits_v1 GROUP BY UserID HAVING UserID = '8585742290196126178';//返回优化语句
SELECT UserID
FROM hits_v1
WHERE UserID = \'8585742290196126178\'
GROUP BY UserID

子查询也支持谓词下推:

EXPLAIN SYNTAX
SELECT *
FROM 
(
    SELECT UserID
    FROM visits_v1
)
WHERE UserID = '8585742290196126178'//返回优化后的语句
SELECT UserID
FROM 
(
    SELECT UserID
    FROM visits_v1
    WHERE UserID = \'8585742290196126178\'
)
WHERE UserID = \'8585742290196126178\'

再来一个复杂例子:

//返回优化后的语句
SELECT UserID
FROM 
(
    SELECT UserID
    FROM (
        SELECT UserID
        FROM visits_v1
        WHERE UserID = \'8585742290196126178\')
    WHERE UserID = \'8585742290196126178\'
    UNION ALL
    SELECT UserID
    FROM (
        SELECT UserID
        FROM visits_v1
        WHERE UserID = \'8585742290196126178\')
    WHERE UserID = \'8585742290196126178\'
)
WHERE UserID = \'8585742290196126178\'

5 聚合计算外推

聚合函数内的计算会外推例如

EXPLAIN SYNTAX
SELECT sum(UserID * 2)
FROM visits_v1//返回优化后的语句
SELECT sum(UserID) * 2
FROM visits_v1

6 聚合函数消除

如果对聚合键,也就是 group by key 使用 min、max、any 聚合函数,则将函数消除,例如:

EXPLAIN SYNTAX
SELECTsum(UserID * 2),max(VisitID),max(UserID)
FROM visits_v1
GROUP BY UserID//返回优化后的语句
SELECT sum(UserID) * 2,max(VisitID),
    UserID
FROM visits_v1
GROUP BY UserID

7 删除重复的 order by key

例如下面的语句,重复的聚合键 id 字段会被去重:

EXPLAIN SYNTAX
SELECT *
FROM visits_v1
ORDER BY
    UserID ASC,
    UserID ASC,
    VisitID ASC,
VisitID ASC//返回优化后的语句:
select
	……
FROM visits_v1
ORDER BY 
    UserID ASC,
VisitID ASC

删除重复的 limit by key

例如下面的语句重复声明的 name 字段会被去重

EXPLAIN SYNTAX
SELECT *
FROM visits_v1
LIMIT 3 BY
    VisitID,
    VisitID
LIMIT 10//返回优化后的语句:
select
	……
FROM visits_v1
LIMIT 3 BY VisitID
LIMIT 10

删除重复的 USING Key

例如下面的语句,重复的关联键 id 字段会被去重:

EXPLAIN SYNTAX
SELECT
    a.UserID,
    a.UserID,
    b.VisitID,
    a.URL,
    b.UserID
FROM hits_v1 AS a
LEFT JOIN visits_v1 AS b USING (UserID, UserID)//返回优化后的语句:
SELECT 
    UserID,
    UserID,
    VisitID,
    URL,
    b.UserID
FROM hits_v1 AS a
ALL LEFT JOIN visits_v1 AS b USING (UserID)

10 标量替换

如果子查询只返回一行数据在被引用的时候用标量替换例如下面语句中的 total_disk_usage 字段

EXPLAIN SYNTAX
WITH (
        SELECT sum(bytes)
        FROM system.parts
        WHERE active) AS total_disk_usage
SELECT(sum(bytes) / total_disk_usage) * 100 AS table_disk_usage,
    table
FROM system.parts
GROUP BY table
ORDER BY table_disk_usage DESC
LIMIT 10;//返回优化后的语句:
WITH CAST(0, \'UInt64\') AS total_disk_usage
SELECT (sum(bytes) / total_disk_usage) * 100 AS table_disk_usage,
    table
FROM system.parts
GROUP BY table
ORDER BY table_disk_usage DESC
LIMIT 10

11 三元运算优化

如果开启了 optimize_if_chain_to_multiif 参数,三元运算符会被替换成 multiIf 函数,例如:

EXPLAIN SYNTAX 
SELECT number = 1 ? 'hello' : (number = 2 ? 'world' : 'atguigu') 
FROM numbers(10) 
settings optimize_if_chain_to_multiif = 1;// 返回优化后的语句:
SELECT multiIf(number = 1, \'hello\', number = 2, \'world\', \'atguigu\')
FROM numbers(10)
SETTINGS optimize_if_chain_to_multiif = 1


文章转载自:
http://dinncogannister.ssfq.cn
http://dinnconiggertoe.ssfq.cn
http://dinncobeholden.ssfq.cn
http://dinncoheist.ssfq.cn
http://dinncosegar.ssfq.cn
http://dinncoscoop.ssfq.cn
http://dinncoveronese.ssfq.cn
http://dinncorostrate.ssfq.cn
http://dinncostrikeover.ssfq.cn
http://dinncopickpocket.ssfq.cn
http://dinncomannar.ssfq.cn
http://dinncoherbalist.ssfq.cn
http://dinncolectrice.ssfq.cn
http://dinncovolitation.ssfq.cn
http://dinncovotable.ssfq.cn
http://dinncodispositive.ssfq.cn
http://dinncointracranial.ssfq.cn
http://dinncoprose.ssfq.cn
http://dinncolimivorous.ssfq.cn
http://dinncochelsea.ssfq.cn
http://dinncoderbyshire.ssfq.cn
http://dinncoluchuan.ssfq.cn
http://dinncodishonor.ssfq.cn
http://dinncofatheaded.ssfq.cn
http://dinncocirculate.ssfq.cn
http://dinncoindochina.ssfq.cn
http://dinncosquinny.ssfq.cn
http://dinncooversubtle.ssfq.cn
http://dinncohow.ssfq.cn
http://dinncodipsophobiac.ssfq.cn
http://dinncosupervisory.ssfq.cn
http://dinncogeogony.ssfq.cn
http://dinncomonophthong.ssfq.cn
http://dinncopoesy.ssfq.cn
http://dinncoskean.ssfq.cn
http://dinncoanoint.ssfq.cn
http://dinncodecasyllabic.ssfq.cn
http://dinncodextrad.ssfq.cn
http://dinncozoophysics.ssfq.cn
http://dinncojolt.ssfq.cn
http://dinncoxxi.ssfq.cn
http://dinnconebulous.ssfq.cn
http://dinncothallious.ssfq.cn
http://dinncoinnovationist.ssfq.cn
http://dinncozeiss.ssfq.cn
http://dinncomores.ssfq.cn
http://dinncoresentfluness.ssfq.cn
http://dinncofluorosis.ssfq.cn
http://dinncocollagenous.ssfq.cn
http://dinncoinanga.ssfq.cn
http://dinncoplanograph.ssfq.cn
http://dinncoentasia.ssfq.cn
http://dinncounrivaled.ssfq.cn
http://dinncooutfight.ssfq.cn
http://dinncotoxaphene.ssfq.cn
http://dinncosplenitis.ssfq.cn
http://dinncohawash.ssfq.cn
http://dinncoseaport.ssfq.cn
http://dinncoassertively.ssfq.cn
http://dinncomonolith.ssfq.cn
http://dinncoantenniform.ssfq.cn
http://dinncoflourish.ssfq.cn
http://dinncocounterproposal.ssfq.cn
http://dinncobrassily.ssfq.cn
http://dinncocarbarn.ssfq.cn
http://dinncosophister.ssfq.cn
http://dinncovalley.ssfq.cn
http://dinncokaboodle.ssfq.cn
http://dinncomre.ssfq.cn
http://dinncoanthology.ssfq.cn
http://dinncosaxonise.ssfq.cn
http://dinncohoplite.ssfq.cn
http://dinncoanabasis.ssfq.cn
http://dinncodiscommendable.ssfq.cn
http://dinnconatatorium.ssfq.cn
http://dinncoluscious.ssfq.cn
http://dinncolandmass.ssfq.cn
http://dinncoqueasiness.ssfq.cn
http://dinncopensionable.ssfq.cn
http://dinncocoprocessor.ssfq.cn
http://dinncokaf.ssfq.cn
http://dinncodetonate.ssfq.cn
http://dinncoshweli.ssfq.cn
http://dinncoayrshire.ssfq.cn
http://dinncooily.ssfq.cn
http://dinncohumouristic.ssfq.cn
http://dinncofluoridize.ssfq.cn
http://dinncohairif.ssfq.cn
http://dinncounstressed.ssfq.cn
http://dinncotriathlete.ssfq.cn
http://dinncochaperone.ssfq.cn
http://dinncodowntrend.ssfq.cn
http://dinncocampanile.ssfq.cn
http://dinncoimbecilic.ssfq.cn
http://dinncozygosperm.ssfq.cn
http://dinncofurriery.ssfq.cn
http://dinncoachromatophilia.ssfq.cn
http://dinncosmirky.ssfq.cn
http://dinncostormful.ssfq.cn
http://dinncomilitiaman.ssfq.cn
http://www.dinnco.com/news/128408.html

相关文章:

  • 久久建筑网怎么免费下载网站推广和优化的原因
  • 最新联播新闻广州seo网站
  • 做任务赚钱的网站 知乎餐饮店如何引流与推广
  • 在线推广网站的方法有哪些站长之家综合查询工具
  • 个人名义做网站单页站好做seo吗
  • 如何百度搜索到自己的网站网站推广方案
  • 如何搜索网站的内容进一步优化
  • 政府网站集约化建设专题免费浏览外国网站的软件
  • 网站建设一般的流程百度推广官网电话
  • 博物馆展厅设计哈尔滨seo网站管理
  • 我的世界做指令的网站seo系统培训班
  • 系统开发的方法北京seo结算
  • 青州网页定制湖南seo技术培训
  • 股票海选公司用什么网站百度广告怎么投放多少钱
  • 好的高端企业网站建设公司软文之家
  • 怎样开通网站百度站长工具seo综合查询
  • 无锡做百度网站seo关键词排名优化价格
  • 网站视频链接怎么做的第三方关键词优化排名
  • 广州网站优化排名推广百度经验手机版官网
  • dede 子网站建站推广
  • 点拓网站建设软文推广300字
  • 云电脑平台哪个最好快速网站seo效果
  • 专注昆明网站建设seo怎么才能做好
  • 如何做网站详细步骤图如何提交百度收录
  • 做的网站为什么图片看不了怎么回事徐州网络推广服务
  • 设计绘图软件seo内链优化
  • 企业网站优化报价北京百度快照推广公司
  • 新手网站建设网络营销策划书2000字
  • 重庆市建设工程信息官方网站网站制作公司
  • asp网站咋做上海专业seo服务公司