问题逻辑是这样的,一个表T,由A,B,C...字段(25个)组成
1、表的数据量会达到2亿左右
2、对表的一些基础操作包括:
a)查询A列某行数据;
b)查询按B字段分组后某组的值;
c)查询按C字段分组后某组的值我现对A字段进行分区了(对A列值进行分1000个区),但效率还是没达到需要的目标P:如果分区再多点效率会不会再高点?请大家帮忙分析一下,对表如何管理才更有效率.
1、表的数据量会达到2亿左右
2、对表的一些基础操作包括:
a)查询A列某行数据;
b)查询按B字段分组后某组的值;
c)查询按C字段分组后某组的值我现对A字段进行分区了(对A列值进行分1000个区),但效率还是没达到需要的目标P:如果分区再多点效率会不会再高点?请大家帮忙分析一下,对表如何管理才更有效率.
要提高查询效率,要综合CPU、IO、具体的SQL语句来考虑。
"查询A列某行数据"--给A建全局索引
表按B列做range再c列做hash分区
2.A字段建上全局索引。
2.B,C字段可选择性高的话,可以分别建位图索引,这样group by的效率会极大提高,但是前提是你这个表不需要频繁的进行DML操作,而且不能一次执行非常大的DML操作。
3.查询的时候加上并行。