ES索引特性

ES索引的特点:倒排索引,不可变性。

不可变性

倒排索引被写入磁盘后永远不会被修改。

不可变索引的优势:

  • 不需要锁,因为不需要更新索引
  • 大部分读请求会直接请求内存,带来性能提升
  • 其他缓存(如filter缓存)在索引生命周期内始终有效

不可变索引的劣势:

  • 删除数据时,不会马上对数据进行物理删除,而是在.del文件中打上删除标记。只有当段更新时才会删除数据,这样会造成大量的空间浪费。
  • 如频繁更新同一条数据,每次更新都会产生新数据,标记旧数据(并没有删除),造成大量空间浪费
  • 每次新增数据都需要新增一个段(segment)来存储数据。对服务器资源(如文件句柄)的消耗较大
  • 查询结果中包含了所有的结果集,需要从中剔除带有删除标记的数据,增加了查询负担。