现有一张大表:数据量为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. 现有的数据如何归类到相应的表分区中?不知道还有没有别的更好的方法呢?
用户编号 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. 现有的数据如何归类到相应的表分区中?不知道还有没有别的更好的方法呢?
忘了说明一下:上传时间是可以更新的,所以我觉得不应该用上传时间来分区吧