问题逻辑是这样的,一个表T,由A,B,C...字段(25个)组成
1、表的数据量会达到2亿左右
2、对表的一些基础操作包括:
   a)查询A列某行数据;
   b)查询按B字段分组后某组的值;
   c)查询按C字段分组后某组的值我现对A字段进行分区了(对A列值进行分1000个区),但效率还是没达到需要的目标P:如果分区再多点效率会不会再高点?请大家帮忙分析一下,对表如何管理才更有效率.

解决方案 »

  1.   

    分区不一定能提高查询效率,但能带来管理效率。
    要提高查询效率,要综合CPU、IO、具体的SQL语句来考虑。
      

  2.   

    CPU、IO我这可能比较低,但SQL语句非常简单的,我建了本地索引,肯定没问题。
      

  3.   

    CPU、IO我这可能比较低 这个 只能说到一定限度了  
      

  4.   

    你的数据库是什么版本?
    "查询A列某行数据"--给A建全局索引
    表按B列做range再c列做hash分区
      

  5.   

    1.数据分布是什么样的?A字段类型,特性,数据分布?这些都是需要提供的信息,就我工作上来说,2Y数据量不需要1000个分区,20个分区足以,每个分区1000W数据,管理和效率都可以。
    2.A字段建上全局索引。
    2.B,C字段可选择性高的话,可以分别建位图索引,这样group by的效率会极大提高,但是前提是你这个表不需要频繁的进行DML操作,而且不能一次执行非常大的DML操作。
    3.查询的时候加上并行。