发布日期:2025-09-30 10:04 点击次数:180
阅读官方文档,发目下506.0版块中引入了一个新特点,叫“复古ubtree批量插入索引”
官方文档鸠集
当以下任何一个场景欣喜所有的经管要求时,淡薄掀开GUC参数batch_insert_index_types并建立为"rcr_ubtree"以擢升批量插入索引性能:
场景1:使用JDBC勾引数据库,通过java的批量插入数据接口executeBatch进行批量插入索引;
场景2:扩充语句insert into t1 select * from t2,其中t1和t2表schema研究,t1表包含索引,此语句复古在t1表上批量插入索引;必须在批量插入表数据的前提下才会批量插入索引(explain verbose大喊不错检察是否对表数据作念批量插入,Batch Insert代表是批量插入)。欣喜这些前提后,掀开批量插入索引开关就会扩充批量插入索引;
场景3:扩充语句COPY FROM(示例:COPY t1 FROM ‘file.csv’ delimiter ‘,’ csv header),其中t1和file.csv文献中的schema研究,t1表包含索引,此语句复古在t1表上批量插入索引。
张开剩余64%经管1:插入的索引类型为UBTree RCR索引;
经管2:插入数据不递加(插入数据递加会应用缓存,即临了一页,这种情况下批量插入索引无性能擢升);
经管3:不是SMP的批量索引插入。
此特点在以下三个场景会影响性能:
要是批量插入数据是递加的(违犯经管2),关闭批量插入功能后,会插入到最右缓存中,性能较好。这种场景下开启批量插入功能会导致性能出现幽微劣化。
在扩充捏续的批量插入时,索引会慢慢变大,进而导致批量插入性能有所下落。
批量插入数据过于散播导致缓存页面射中率过低,大略开动内存过小的场景下,开启批量插入功能会导致性能出现较大幅度劣化。
要是性能劣化幅度较大,淡薄建立GUC参数batch_insert_index_types为"",关闭该功能,性能劣化问题即可还原。
要是需要技巧复古工程师定位原因,不错建立GUC参数logging_module=‘on(BIINDEX)’,掀开批量插入索引的日记打印,扩充几分钟批量插入直到日记中出现BIINDEX字符串罢休。
其实这个特点的旨趣节略来说,便是中间加了层索引的缓存页面,不错提前将索引进行排序,加速插入索引的速率(与之相对的其实便是批量数据插入时的单行索引插入)。
这个功能在GaussDB中是默许开启的,创建的索引默许便是RCR索引。
指定创建PCR索引会报错GAUSS-40615: Extreme redo does not support pcr's ubtree.(Extreme Redo不复古 pcr's ubtree。)(没找到任何干系Extreme redo的阐明)。
batch_insert_index_types默许为rcr_ubtree。
发布于:湖南省Powered by 开云官网登录入口 开云KaiyunApp官网入口 @2013-2022 RSS地图 HTML地图
Copyright Powered by365站群 © 2013-2024