1. 不支持高并发
ClickHouse 将数据划分为多个 partition,每个 partition 再进一步划分为多个 index_granularity(索引粒度),然后通过多个 CPU核心分别处理其中的一部分来实现并行数据处理。在这种设计下, 单条 Query 就能利用整机所有 CPU。 极致的并行处理能力,极大的降低了查询延时。所以,ClickHouse 即使对于大量数据的查询也能够化整为零平行处理。但是有一个弊端就是对于单条查询使用多 cpu,就不利于同时并发多条查询。所以对于高 qps 的查询业务, ClickHouse 并不是强项。
2. 建议1000条以上批量的写入
尽量做1000条以上批量的写入,避免逐行insert或者小批量的insert、update、delete操作,因为clickhouse底层会不断的做异步的数据合并,会影响查询性能。
3. 稀疏索引
稀疏索引使得clickhouse不适合通过其键检索单行的点查询。稀疏索引的好处就是可以用很少的索引数据,定位更多的数据,代价就是只能定位到索引粒度的第一行,然后再进行一点扫描。