现有一张大表:数据量为900万,将来可能会有1亿的数据量;如此大的数据量查询的响应时间很长,现在这张表没有做任何的优化设置,我现在的想法是为这个表做表分区来存放有一定关系的数据,表的结构是这样的: 表名:IC库存表 编号 ID NUMBER 用户编号 USERID NUMBER 型号 MODEL VARCHAR2 厂商 MAKER VARCHAR2 数量 AMOUNT NUMBER 批号 LOTNUMBER VARCHAR2 上传时间 UPTIME DATE 价格 PRICE NUMBER 状态 STATE NUMBER 封装 ENCAPSULATION VARCHAR2 描述 DECRIPT VARCHAR2 是否审核 VOUCH NUMBER 是否现货 SPOTGOODS NUMBER 说明:型号是以26个字母或者0-9这几个数字开头的 对此表常用操作是: 1. 向此表中导入数据(EXCEL文件格式) 2. 向此表中逐条插入数据 3. 对此表进行查询操作,常用查询字段是: 型号(MODEL)、数量(AMOUNT)、批号(LOTNUMBER)、封装(ENCAPSULATION)、用户编号(USERID),其中型号、用户编号字段用得最多。 问题: 1. 现在的解决办法是:按型号的头两个字符分成若干个表,每个表以IC_加 ”型号” 的头两个字符命名, 这些表中存放 ” 型号” 头两个字符与表名对应的数据.(如:型号头两个字符为IR的数据存放到IC_IR表中),这样就解决了按型号查询的速度问题,但是不能解决按“用户编号”查询的速度问题,也就是说,如果要查询某一用户的库存时,必须扫描每个分表中以查出某一用户的库存。 2. 如果用表分区方法的话应该怎么去分区? 3. 向此表中导入数据的时候会不会自动的把相应的数据导入到相应的分区里面? 4. 现有的数据如何归类到相应的表分区中? 不知道还有没有别的更好的方法呢? |