免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1743 | 回复: 0
打印 上一主题 下一主题

MySQL5.5使用字符串进行分区的范围设置? [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2013-04-21 15:33 |只看该作者 |倒序浏览
问题描述
1, 表情况
现有一张约25万行的表,其中有几个字段加了索引did(主键),title,time等。
该表每天增加约10000条记录,(最终规模大概是3000万+级别,表大小50G+),所以考虑对它进行分区(注:不选择分表,因为需要改动php程序代码?!这个实现起来比较困难?!)。
2,字段情况
搜索的时候,80%情况下使用title搜索,其次是用did搜索,两者都建有索引,目前还是很快的。
did设置是int,自增
title设置是varchar(80),主要是纯数字形式字符串(例如,1234,3456,5677等,非连续),还有很少一些非数字字符串(例如,china,中国,A1233等)。

需求&思路
已经实现了按照did字段(int类型)进行hash分区,但是我认为这个似乎对sql语句(大约是select did, title, time, ...  from table where title=1234)没有什么优化。
需要按照title进行分区,优化查询

语句大概是这样的:


  1. ..........
  2. PARTITION BY RANGE COLUMNS (title)
  3. (
  4.   PARTITION p00 VALUES LESS THAN (0),                 #####存储所有非纯数字形式的title
  5.   PARTITION p01 VALUES LESS THAN (500000),        #####存储纯数字形式小于50万的title
  6.   PARTITION p02 VALUES LESS THAN (1000000),      #####存储纯数字形式小于100万的title
  7.   PARTITION p03 VALUES LESS THAN (1500000),      #####存储纯数字形式小于150万的title
  8.   ..........                                                                #####依次类推
  9.   PARTITION pn VALUES LESS THAN (25000000),      #####存储纯数字形式小于2500万的title
  10.   PARTITION pn+1 VALUES LESS THAN (MAXVALUE)  #####存储纯数字形式大于2500万的title,预计未来1年不会超过3000万,这个以后可以再添加分区
  11. );
复制代码


问题
1,分区中VALUES LESS THAN (?) 里边该如何写?试了下'500000'之类不行(我不太清楚编码和范围,抱歉)
2,分区后按照where title=xxx来搜索,是直接根据索引到某个分区中提取信息的吧?
3,其他方面的优化。

谢谢啦!
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP