【详述】主键模型表(根据tpch测试里面的orders表改的,单BUCKET,单副本)1.5亿行,开启索引持久化了。随机更新40条数据,发现INDEX_MEM(SELECT * from information_schema.be_tablets语句查看的)才占用几百K,根据主键查询数据,很快,但是INDEX_MEM并没有增加。查询时,索引是否参与了?L0(内存)什么时候构建,最大是多少?在一个频繁更新的主键模型表里面,如果大量的更新没有命中L0,是不是就到L1(ssd)去了?那有没有L0的优化策略,比如LRU之类的?
【背景】测试主键模型性能和内存占用
【业务影响】无影响
【StarRocks版本】例如:2.5.4
【集群规模】例如:3fe(1 follower+2observer)+3be(fe与be混部)
【机器信息】CPU虚拟核/内存/网卡,例如:24C/32G/千兆
CREATE TABLE orders (
o_orderdate date NOT NULL COMMENT “”,
o_orderkey varchar(32) NOT NULL COMMENT “”,
o_custkey int(11) NOT NULL COMMENT “”,
o_orderstatus varchar(1) NOT NULL COMMENT “”,
o_totalprice decimal64(15, 2) NOT NULL COMMENT “”,
o_orderpriority varchar(15) NOT NULL COMMENT “”,
o_clerk varchar(15) NOT NULL COMMENT “”,
o_shippriority int(11) NOT NULL COMMENT “”,
o_comment varchar(79) NOT NULL COMMENT “”
) ENGINE=OLAP
PRIMARY KEY(o_orderdate, o_orderkey)
COMMENT “OLAP”
DISTRIBUTED BY HASH(o_orderkey) BUCKETS 1
PROPERTIES (
“replication_num” = “1”,
“in_memory” = “false”,
“storage_format” = “DEFAULT”,
“enable_persistent_index” = “true”,
“compression” = “LZ4”,
“storage_medium” = “SSD”
);
1赞
有同样的疑问。 想知道索引持久化的机制,以及L0、L1的数据结构。
如果定义的主键是递增的会不会写入效率更高?