segment段文件非常大会有什么问题没?比如说100G一个?

看到段越少查询性能越高,但如果单个段很大会不会有什么问题,查询时是怎么加载的?
已邀请:

kennywu76 - wood@Ctrip

赞同来自: wise111

1. 段文件本身也有索引放在内存里, 查询的时候,先走内存里的索引,然后根据索引定位到的数据块位置去访问磁盘上的段文件。
2. 段文件的读取使用的mmap file的方式映射到os page cache,只有访问到的部分才会被读取,并且热数据块再次访问时很可能已经在cache里,减少磁盘的访问。
3. 段文件过大,查询的性能也会开始降低。当速度低于期望时,开始考虑增加shard数量,提升查询的并行度。 前提是机器的物力资源,如cpu, 内存,磁盘IO能够支撑增加的并行度。

ElastIcPG

赞同来自: wise111

其实你只要搞清楚segemnt在其中担当的角色就很清楚了,之所以segment大了查询性能会减低一方面是因为你过少的sgment带来的并发会随之较少,会有一定的影响,但是好处是可以减少数据的迁移聚合,看你怎么权衡了 折中是效果最好的

bjfk2006

赞同来自:

一般推荐一个shard不要超过50GB,也就是说一个segment最好也不要超过这个值

要回复问题请先登录注册