mysql partition 分表的一些问题,数据超过1亿条,请高手帮忙看一下,太感谢您了

zyfang1115 2008-01-09 01:58:18
例如下面的语名
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也是是懂非懂的,现在要做的项目是这个表的数据超过亿条,只能分表处理,却找不到好的方案


请做过这样功能的高手仔细地帮我回答一下,不胜感谢。。
...全文
1322 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
hyjz 2008-06-10
  • 打赏
  • 举报
回复
关注一下。。
兄弟我还更郁闷呢。。
需求跟LZ的差不多,
数据少点。。
问题是 lz 那个 "型号" 的 char 字段在我这里需要有模糊查找的功能。
晕死我。。
艰难求解中....
懒得去死 2008-03-11
  • 打赏
  • 举报
回复
http://www.itpub.net/thread-952047-1-1.html
懒得去死 2008-01-09
  • 打赏
  • 举报
回复
你这样的要求就得按照HASH来分区。具体看看手册中的HASH分区。不懂的再来问。
zyfang1115 2008-01-09
  • 打赏
  • 举报
回复
自己顶一下,在线等

57,063

社区成员

发帖
与我相关
我的任务
社区描述
MySQL相关内容讨论专区
社区管理员
  • MySQL
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧