在EsgynDB、QianBase处理大数据量的表情况下,一般会指定salt建创建表结构,并按照该键值的UEC情况将数据分布在各个节点上;
查询的时候,SQL执行引擎会根据salt的列存储的各种值并发扫描或者定向查询,以提升大数据量场景下的查询性能;
在选择salt键时,需要满足以下两个条件:
1、查询表各列的UEC情况,保证salt列的值大于表的分区的200倍以上;
-- 查看UEC,首先需要对该表做统计更新 update statistics for table seabase.uirb_data_version on every column sample; -- 统计更新执行完成后即可查看表中各字段的UEC showstats for table uirb_data_version on every column;
2、salt列不能有热点数据;
所谓热点数据是指,当一张表上亿条数据,某个列的一个值为字符串'qwer',以该值查询数据量达到7千万左右,大部分数据相同了;
-- 通过这个语句可以查看那些列的值比较多,即热点数据 select card_nbr,count(*) from tbl_event group by 1 order by 2 desc limit 50;
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/69985104/viewspace-2757018/ ,如需转载,请注明出处,否则将追究法律责任。