【问题标题】:How to create index in servral sql condition?如何在 servral sql 条件下创建索引?
【发布时间】:2019-04-23 22:47:57
【问题描述】:

数据如 starttime, endtime, id, a, b, c, d, e, f, g...

如何在clickhouse上创建索引,大部分sql如下:

1.select starttime,endtime,id,a,b,c,d,e,f,g from tbl1 在哪里开始时间> =?和结束时间

2.select a,c,sum(f),avg(g) from tbl1 在哪里开始时间> =?和结束时间

3.select starttime,endtime,id,a,b,c,d,e,f,g from tbl1 在哪里开始时间> =?和结束时间

4.select a,c,sum(f),avg(g) from tbl1 在哪里开始时间> =?和结束时间

5. 从 tbl1 中选择 a,b,c,d,e,f,g 在哪里开始时间> =?和结束时间

提示:
a) 总是有开始时间,结束时间

b) 一些 SQL 有一个 id 用于搜索小数据,例如 1。但其他 SQL 用于搜索大数据,例如 2,3,4,5

【问题讨论】:

  • 请更好地格式化您的问题。把所有东西都放在一行是不好的。
  • starrtime 和 enddtime 之间的时间范围是窄(如分钟)还是宽(天/周/月)?

标签: clickhouse


【解决方案1】:

Clickhouse 是一个具有一个主键的面向列的数据库,他将每一列存储在不需要二级索引的单独优化“存储”中

您可以选择 *MergeTree 表引擎,主键为 starttime 和 endtime 每种 MergeTree 引擎都在这里描述https://clickhouse.yandex/docs/en/operations/table_engines/mergetree/

您的所有查询都将尽可能快地运行

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-09-25
    • 1970-01-01
    • 1970-01-01
    • 2016-12-10
    • 2021-12-24
    • 1970-01-01
    • 2023-02-13
    相关资源
    最近更新 更多