例如下面的语名
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也是是懂非懂的,现在要做的项目是这个表的数据超过亿条,只能分表处理,却找不到好的方案
请做过这样功能的高手仔细地帮我回答一下,不胜感谢。。
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也是是懂非懂的,现在要做的项目是这个表的数据超过亿条,只能分表处理,却找不到好的方案
请做过这样功能的高手仔细地帮我回答一下,不胜感谢。。
解决方案 »
- cluster修改config.ini之后,重新加载ndbd --initial后,sql节点看不到原有的数据?
- mysql连接查询问题
- mysql如何把在屏幕上输出的结果输出到一个文件上?
- 求一个sum函数的sql语句
- mysql中的慢查询日志slow.log
- 关于MySQL单表多字段查询的问题,急!谢谢
- 请问要在.net 的web应用程序中使用mysql,应该如何配置呢?
- Mysql Event执行失败 Lock wait timeout exceeded; try restarting transaction
- MYSQL 存储过程 begin end 之间的语句块作为参数如何执行!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
- mac终端操作mysql向表格插入汉字第一次成功第二次乱码,char1列添加一个汉字出现错误
- 写存储过程时可否在Select 里再套Select?
- 急!!向各位高手请教一个关于日期处理的SQL问题!!!
兄弟我还更郁闷呢。。
需求跟LZ的差不多,
数据少点。。
问题是 lz 那个 "型号" 的 char 字段在我这里需要有模糊查找的功能。
晕死我。。
艰难求解中....