数据仓库服务 GaussDB(DWS)-实现:GIN快速更新技术
GIN快速更新技术
由于倒排索引的本身特性影响,更新一个GIN索引可能会比较慢。插入或更新一个堆行可能导致许多往索引的插入。当对表执行VACUUM后,或者如果待处理实体的列表太大了(大于work_mem),这些实体被使用和初始索引创建时用到的相同的bulk插入方法,移动到主要的GIN数据结构。即使把额外的VACUUM开销算进去,这也大大提升了GIN索引更新的速度。而且,这种额外开销的工作可以通过后台进程而不是前端查询来处理。
这种方法的主要缺点在于搜索时除了常规的索引还必须要扫描待处理实体的列表。因此,大的待处理实体的列表会显著的拖慢搜索。另一个缺点是,虽然大多数更新很快,但是一个导致待处理列表(pending list)变得“太大”的更新将引发一个立即清理,并因此比起其它更新会非常慢。恰当的使用autovacuum可以弱化这两个问题。
如果一致的响应时间(清理实体速度和更新速度的响应时间)比更新速度更重要,可以通过把GIN索引的存储参数FASTUPDATE设置为off而不使用待处理实体。详细请参考CREATE INDEX。
- 数据仓库服务GaussDB(DWS)_SQL on Anywhere
- DWS安全_数据仓库服务安全_DWS数据安全管理_DWS安全保障_DWS安全策略
- 调用GaussDB(DWS) API接口_数据仓库服务调用API_如何调用API_在DWS中调用API
- DWS资源管理_GaussDB(DWS)资源管理作用_DWS资源管控
- GAUSS(DWS)工具_gsql工具_DataStudio工具_DSC工具
- GaussDB(DWS)常用SQL_常用SQL命令_SQL语法
- DWS产品介绍_DWS产品优势_DWS功能_DWS使用场景_DWS是什么
- GaussDB快速入手_GaussDB价格_高斯数据库快速入手_华为云
- 云数据库Gaussdb快速入门_gaussdb连接__gaussdb案例
- 数据库监控DMS_数据库智能运维_了解Auto Pilot_DMS_DWS节点监控