首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > Mysql >

一个分区有关问题

2012-09-06 
求助一个分区问题有如下SQL语句SQL codeCREATETABLE IF NOT EXISTS `dx_gd_goods2` (`g_id` INT(11) NOT N

求助一个分区问题
有如下SQL语句

SQL code
CREATE  TABLE IF NOT EXISTS `dx_gd_goods2` (  `g_id` INT(11) NOT NULL AUTO_INCREMENT COMMENT '商品ID\n' ,  `g_name` varchar(225)  COMMENT '商品名称\n' ,  `b_id` int(11) unsigned not NULL  COMMENT '商家ID\n',  `t_id` int(11) unsigned not NULL COMMENT '所属分类ID\n',  `g_img_big` varchar(200) NULL COMMENT '商品大图\n' ,  PRIMARY KEY (`g_id`,`t_id`) )ENGINE = MyISAM DEFAULT CHARSET=utf8COMMENT = '商品表\n'PARTITION BY RANGE (t_id) (PARTITION p0 VALUES LESS THAN (0),PARTITION p1 VALUES LESS THAN (100000000) , PARTITION p2 VALUES LESS THAN (110000000) ,PARTITION p3 VALUES LESS THAN (120000000) , PARTITION p4 VALUES LESS THAN (130000000) ,PARTITION p5 VALUES LESS THAN (140000000) , PARTITION p6 VALUES LESS THAN (150000000) ,PARTITION p7 VALUES LESS THAN (160000000) , PARTITION p8 VALUES LESS THAN (170000000) ,PARTITION p9 VALUES LESS THAN (180000000) , PARTITION p10 VALUES LESS THAN(190000000) ,PARTITION p11 VALUES LESS THAN MAXVALUE );


我以t_id分区,分区是成功了的(我写入了一个数据,然后删除他的对应分区,在查询是得不到数据的,这就表示分区成功),然后呢,我explan一下
explain SELECT * FROM `dx_gd_goods2` where t_id >=100000000 and t_id<110000000;
结果看到的信息里,并没有用到分区 (没有partitions这个信息),我想请问一下,我这里分区那错了?我怎么才能用得到分区呢?

explain

mysql> explain SELECT * FROM `dx_gd_goods2` where t_id >=100000000 and t_id<110000000;
+----+-------------+--------------+--------+---------------+------+---------+------+------+-------+
| id | select_type | table | type | possible_keys | key | key_len | ref | rows | Extra |
+----+-------------+--------------+--------+---------------+------+---------+------+------+-------+
| 1 | SIMPLE | dx_gd_goods2 | system | NULL | NULL | NULL | NULL | 1 | |
+----+-------------+--------------+--------+---------------+------+---------+------+------+-------+
1 row in set (0.00 sec)




[解决办法]
转到mysql版吧,那边牛人多。
[解决办法]
找专业高手问问,少走弯路~
[解决办法]
分区是内部行为,对于使用者而言:除了查询速度变快了以外,与不分区的表没有什么两样

explain 返回的是 sql 指令使用资源的情况,与分区无关
explain 也不会给出如何创建分区的建议
[解决办法]
分区主要用于当你一个表的数据非常大时
你可以试一下 有几千万数据的分区表跟没分区表 再对比下速度

热点排行