例如下面的语名
CREATE TABLE employees (
    id INT NOT NULL,
    fname VARCHAR(30),
    lname VARCHAR(30),
    hired DATE NOT NULL DEFAULT '1970-01-01',
    separated DATE NOT NULL DEFAULT '9999-12-31',
    job_code INT NOT NULL,
    store_id INT NOT NULL
)
PARTITION BY RANGE (store_id) (
    PARTITION p0 VALUES LESS THAN (6),
    PARTITION p1 VALUES LESS THAN (11),
    PARTITION p2 VALUES LESS THAN (16),
    PARTITION p3 VALUES LESS THAN MAXVALUE
);
是以range分区,查询的时候where store_id>11 and store_id<15时会直接跳过其它分区,只扫描第二个分区,效率很高
我要做的是一个存放蕊片的表,有 型号,数量,价格,厂商,备注等字段,主要查询条件是 where 型号=“××”这样的查询,也就是说"型号“是
一个char类型的字段,这样的话我该如何分区,用什么类型,查找了很多资料都难以很好高效地解决。偶想到一种方法,就是将型号md5后得到字符串,然后然字符串转换为十进制字数字,以这个数字为区间存放,查询的时候先把查询条件转变为数字,再去找区间
这样可以跳过其它分区,找到相应的分区,但是出现一种情况,就是说某一种型号可能很多,这样就会集中放在一个区中,其它区却很少数据,又或者会出理md5后的字符串
转变为十进制后会重复,这样导至不是一样型号的列有一个同样的数值,
晕晕啊,mysql分区还有hash,key也是是懂非懂的,现在要做的项目是这个表的数据超过亿条,只能分表处理,却找不到好的方案
请做过这样功能的高手仔细地帮我回答一下,不胜感谢。。