• 2022-08-04 clickhouse的select子句


    select子句:

    SELECT 子句决定了一次查询语句最终返回哪些列字段或表达
    式。与直观的感受不同,虽然 SELECT 位于 SQL 语句的起始位置,但
    它却是在上述一众子句之后执行的。在其他子句执行之后, SELECT
    会将选取的字段或表达式作用于每行数据之上。

    Join性能:

    为了能够优化 JOIN 查询性能,首先 应该遵循左大右小的原则 ,即
    将数据量小的表放在右侧。这是因为在执行 JOIN 查询时,无论使用的
    是哪种连接方式,右表都会被全部加载到内存中与左表进行比较。
    其次, JOIN 查询目前没有缓存的支持 ,这意味着每一次 JOIN
    询,即便是连续执行相同的 SQL ,也都会生成一次全新的执行计划。
    如果应用程序会大量使用 JOIN 查询,则需要进一步考虑借助上层应用
    侧的缓存服务或使用 JOIN 表引擎来改善性能。
    最后, 如果是在大量维度属性补全的查询场景中,则建议使用字
    典代替 JOIN 查询 。因为在进行多表的连接查询时,查询会转换成两两
    连接的形式,这种 滚雪球 式的查询很可能带来性能问题。

    内存限制

    JOIN子句 | ClickHouse Docs

    默认情况下,ClickHouse使用 哈希联接 算法。 ClickHouse采取  并在RAM中为其创建哈希表。 在某个内存消耗阈值之后,ClickHouse回退到合并联接算法。

    如果需要限制联接操作内存消耗,请使用以下设置:

    当任何这些限制达到,ClickHouse作为 join_overflow_mode 设置指示。

  • 相关阅读:
    09 创建型模式-建造者模式
    聊聊 HTTP 性能优化
    CSS必学:你需要知道的盒子模型的秘密
    Open set
    el-date-picker与el-time-picker的时间格式设置
    C++之类与对象(上)
    解决证书加密问题:OpenSSL与urllib3的兼容性与优化
    Camunda BPM架构
    西电通信技术基础实验
    架构思考 (六)
  • 原文地址:https://blog.csdn.net/adofsauron/article/details/126158145