count 浅析(2)

简介: count 浅析

方案三:其他数据库

其他数据库的话首推 clickhouse,之前测试ch时发现执行count(*)速度非常快,截一张当时的PPT:

屏幕快照 2021-11-19 上午12.37.10.png


当然异构数据库最大的问题就是要解决增量同步。mysql 同步至 CH,目前大多数的方案是使用python工具,该方案还不成熟,相信随着时间推移会有更好的方案,届时很多 OLAP 或者 count(*) 业务都可以在 clickhouse 上进行。

小结

如果对行数这种实时性、响应性要求很高,而数据库本身也已无法满足,这时候才应该考虑去持久化计数。各种方案都是有利有弊,找到合适自己的才是最好的。

四. 关于查询成本

在测试count性能时,想到了select操作会涉及查询成本,于是特意把之前写的有关查询成本的内容贴了过来,希望可以帮到大家,也给自己做个知识点回顾。

执行计划

再额外看下mysql的查询成本,以一条sql为例:

SELECT
  *
FROM
  count_test 
WHERE
  var_col > 'var_co1123456'
AND insert_time < '2020-10-26 10:10:12'


这条sql不出意外扫了全表,可能是由于用了 select * 需要回表,开销较大。接下来改成索引覆盖的形式。

屏幕快照 2021-11-19 上午12.38.59.png
索引覆盖:
SELECT
  insert_time
FROM
  count_test 
WHERE
  var_col > 'var_co1123456'
AND insert_time < '2020-10-26 10:10:12'



执行计划显示还是用了全表。

索引覆盖+强制索引:

使用 force index ,让它强制使用时间索引:

屏幕快照 2021-11-19 上午12.39.18.png



执行计划用到了时间索引。

查询成本核算

核算公式:

cost = rows*0.2 + data_length/(1024*16)
1. 全表查询成本


199644 * 0.2 + 9977856 / (1024 * 16) = 40,537.8

代入公式可以算出,全表的成本约为 40537.8

2. 各索引查询成本

通过 optimizer_trace 方式查看:

SET optimizer_trace="enabled=on";
SELECT insert_time FROM count_test WHERE var_col > 'var_co1123456' AND insert_time < '2020-10-26 10:10:12';
SELECT * FROM information_schema.OPTIMIZER_TRACE;
SET optimizer_trace="enabled=off";


然后看下走索引的预估成本


optimizer_trace 下全表查询的预估成本:

40540 和我们之前计算的 40537.8 差不多,这个值要远小于走索引的成本。

所以 mysql 在执行此 sql 的时候会使用全表扫描,都是基于执行成本来判断的。


全文完。

Enjoy MySQL :

相关文章
|
Prometheus 监控 Cloud Native
DataSophon手动部署Doris操作指南
DataSophon手动部署Doris操作指南
3121 0
|
9月前
|
存储 监控 大数据
探究ClickHouse数据库的Mutation机制
ClickHouse的Mutation机制提供了一种高效的方式来处理大数据集上的修改操作。然而,需要注意的是,由于其异步和资源密集的特性,应当谨慎地进行规划和优化,以确保系统的整体性能。通过合理地使用Mutation操作,可以在保证数据一致性的同时,有效地管理和分析大规模数据集。
460 18
|
存储 消息中间件 OLAP
基于 Flink+Paimon+Hologres 搭建淘天集团湖仓一体数据链路
本文整理自淘天集团高级数据开发工程师朱奥在Flink Forward Asia 2024的分享,围绕实时数仓优化展开。内容涵盖项目背景、核心策略、解决方案、项目价值及未来计划五部分。通过引入Paimon和Hologres技术,解决当前流批存储不统一、实时数据可见性差等痛点,实现流批一体存储与高效近实时数据加工。项目显著提升了数据时效性和开发运维效率,降低了使用门槛与成本,并规划未来在集团内推广湖仓一体架构,探索更多技术创新场景。
2056 3
基于 Flink+Paimon+Hologres 搭建淘天集团湖仓一体数据链路
|
12月前
|
分布式计算 Serverless OLAP
实时数仓Hologres V3.1版本发布,Serverless型实例从零开始构建OLAP系统
Hologres推出Serverless型实例,支持按需计费、无需独享资源,适合新业务探索分析。高性能查询内表及MaxCompute/OSS外表,弹性扩展至512CU,性能媲美主流开源产品。新增Dynamic Table升级、直读架构优化及ChatBI解决方案,助力高效数据分析。
实时数仓Hologres V3.1版本发布,Serverless型实例从零开始构建OLAP系统
|
12月前
|
存储 BI API
一文读懂数据中台和数据仓库的区别
本文深入解析了“数据中台”与“数据仓库”的区别,从定义、功能、架构设计、数据处理、应用场景等多个维度进行对比,帮助企业更清晰地理解二者的核心差异与适用场景。数据仓库重在存储与分析历史数据,服务于高层决策;数据中台则强调数据的实时处理与服务化输出,直接赋能一线业务。文章还结合企业规模、业务需求与技术能力,给出了选型建议,助力企业在数字化转型中做出更科学的选择。
1726 11
|
SQL 存储 JSON
实时数仓 Hologres 产品介绍:一体化实时湖仓平台
本次方案的主题是实时数仓 Hologres 产品介绍:一体化实时湖仓平台,介绍了 Hologres 湖仓存储一体,多模式计算一体、分析服务一体和 Data+AI 一体四方面一体化场景,并对其运维监控方面及客户案例进行一定讲解。 1. Hologres :面向未来的一体化实时湖仓 2. 运维监控 3. 客户案例 4. 总结
1021 14
|
存储 SQL 监控
ClickHouse 应用剖析:设计理念、机制与实践
ClickHouse 是一款高性能的列式数据库管理系统,主要用于实时的大数据分析场景。它由俄罗斯 Yandex 公司开源于 2016 年,在网页日志分析、物联网监控、广告计费等领域有广泛应用。ClickHouse 通过列式存储、向量化执行和分布式架构,实现对海量数据的快速查询分析。本文将介绍 ClickHouse 的设计理念,以及在实际使用中如何处理数据删除更新、冷热数据分离等问题,并提供常见配置的调优建议和异常问题的处理方法。
2544 14
ClickHouse 应用剖析:设计理念、机制与实践
|
数据采集 存储 BI
数据中台是什么?一文讲清为什么要建设数据中台
数据中台是企业实现数据整合与高效应用的关键平台,能够打通数据孤岛、提升决策效率并降低成本。它通过统一管理、清洗和分发数据,支撑业务创新与实时分析,是企业在数字化转型中的核心基础设施。
|
存储 监控 物联网
【Clickhouse 探秘】Clickhouse 投影技术到底能做什么?怎么实现的?
ClickHouse 投影是一种数据结构,用于提高特定查询模式下的性能。通过预处理数据,投影可以显著减少查询的执行时间,特别是在复杂的聚合和排序查询中。投影自动与基础表数据保持同步,支持多投影,适用于实时分析、用户行为分析、日志分析等场景。虽然投影能显著提升查询性能,但也会增加存储开销和写入性能的影响。
690 0
|
资源调度 分布式计算 Hadoop
YARN中的资源调度
【6月更文挑战第19天】YARN中的资源调度
585 3