mysql 分区问题请教: 我的mysql 是支持分区的
mysql> show variables like '%partition%';
+-------------------+-------+
| Variable_name | Value |
+-------------------+-------+
| have_partitioning | YES |
+-------------------+-------+
1 row in set (0.02 sec)我创建表的语句是这样的:
CREATE TABLE `jobstat` (
`id` bigint(20) unsigned NOT NULL AUTO_INCREMENT,
`jobNo` varchar(45) DEFAULT NULL,
`clickSum` int(10) unsigned DEFAULT NULL,
`showSum` int(10) unsigned DEFAULT NULL,
`mailSum` int(10) unsigned DEFAULT NULL,
`locationid` varchar(10) DEFAULT NULL,
`logdate` char( DEFAULT NULL,
PRIMARY KEY (`id`)
)partition by RANGE(id)(
partition p0 values less than (5000000),
partition p1 values less than (10000000),
partition p2 values less than (15000000),
partition p3 values less than maxvalue
);
我想每500万数据在一个分区内。先创建了4个分区。第一个问题: 我显示表的时候,显示的信息如下:
mysql> show create table jobstat\G;
*************************** 1. row ***************************
Table: jobstat
Create Table: CREATE TABLE `jobstat` (
`id` bigint(20) unsigned NOT NULL AUTO_INCREMENT,
`jobNo` varchar(45) DEFAULT NULL,
`clickSum` int(10) unsigned DEFAULT NULL,
`showSum` int(10) unsigned DEFAULT NULL,
`mailSum` int(10) unsigned DEFAULT NULL,
`locationid` varchar(10) DEFAULT NULL,
`logdate` char(8)DEFAULT NULL,
PRIMARY KEY (`id`),
KEY `idx_jobstat_jobNo` (`jobNo`) USING BTREE,
KEY `idx_jobstat_logdate` (`logdate`),
KEY `idx_jobstat_locationid` (`locationid`),
KEY `idx_jobstat_jobNo_logdate` (`jobNo`,`logdate`) USING BTREE,
KEY `idx_jobstat_clickSum` (`clickSum`),
KEY `idx_jobstat_showSum` (`showSum`)
) ENGINE=MyISAM AUTO_INCREMENT=14581386 DEFAULT CHARSET=gbk/*!50100PARTITION BY RANGE (id) (PARTITION p0 VALUES LESS THAN(5000000) ENGINE= MyISAM, PARTITION p1 VALUES LESS THAN (10000000)ENGINE = MyISAM,PARTITION p2 VALUES LESS THAN (15000000) ENGINE =MyISAM, PARTITION p3VALUES LESS THAN MAXVALUE ENGINE = MyISAM) */
1 row in set (0.00 sec)ERROR:
No query specified这说明我创建分区成功了么,因为显示的语句把我创建分区的语句给 /* */起来了,所以感觉好像不大对似的。
第二个问题:
我往这个表中导入了数据,大约1500万条。
我可以知道具体的有哪些数据分别在那个分区么?
也就是我想检验我分区创建的效果实现没,我该怎么操作呢第一次弄这个东西,很多不明白的地方,非常感谢。
mysql> show variables like '%partition%';
+-------------------+-------+
| Variable_name | Value |
+-------------------+-------+
| have_partitioning | YES |
+-------------------+-------+
1 row in set (0.02 sec)我创建表的语句是这样的:
CREATE TABLE `jobstat` (
`id` bigint(20) unsigned NOT NULL AUTO_INCREMENT,
`jobNo` varchar(45) DEFAULT NULL,
`clickSum` int(10) unsigned DEFAULT NULL,
`showSum` int(10) unsigned DEFAULT NULL,
`mailSum` int(10) unsigned DEFAULT NULL,
`locationid` varchar(10) DEFAULT NULL,
`logdate` char( DEFAULT NULL,
PRIMARY KEY (`id`)
)partition by RANGE(id)(
partition p0 values less than (5000000),
partition p1 values less than (10000000),
partition p2 values less than (15000000),
partition p3 values less than maxvalue
);
我想每500万数据在一个分区内。先创建了4个分区。第一个问题: 我显示表的时候,显示的信息如下:
mysql> show create table jobstat\G;
*************************** 1. row ***************************
Table: jobstat
Create Table: CREATE TABLE `jobstat` (
`id` bigint(20) unsigned NOT NULL AUTO_INCREMENT,
`jobNo` varchar(45) DEFAULT NULL,
`clickSum` int(10) unsigned DEFAULT NULL,
`showSum` int(10) unsigned DEFAULT NULL,
`mailSum` int(10) unsigned DEFAULT NULL,
`locationid` varchar(10) DEFAULT NULL,
`logdate` char(8)DEFAULT NULL,
PRIMARY KEY (`id`),
KEY `idx_jobstat_jobNo` (`jobNo`) USING BTREE,
KEY `idx_jobstat_logdate` (`logdate`),
KEY `idx_jobstat_locationid` (`locationid`),
KEY `idx_jobstat_jobNo_logdate` (`jobNo`,`logdate`) USING BTREE,
KEY `idx_jobstat_clickSum` (`clickSum`),
KEY `idx_jobstat_showSum` (`showSum`)
) ENGINE=MyISAM AUTO_INCREMENT=14581386 DEFAULT CHARSET=gbk/*!50100PARTITION BY RANGE (id) (PARTITION p0 VALUES LESS THAN(5000000) ENGINE= MyISAM, PARTITION p1 VALUES LESS THAN (10000000)ENGINE = MyISAM,PARTITION p2 VALUES LESS THAN (15000000) ENGINE =MyISAM, PARTITION p3VALUES LESS THAN MAXVALUE ENGINE = MyISAM) */
1 row in set (0.00 sec)ERROR:
No query specified这说明我创建分区成功了么,因为显示的语句把我创建分区的语句给 /* */起来了,所以感觉好像不大对似的。
第二个问题:
我往这个表中导入了数据,大约1500万条。
我可以知道具体的有哪些数据分别在那个分区么?
也就是我想检验我分区创建的效果实现没,我该怎么操作呢第一次弄这个东西,很多不明白的地方,非常感谢。
解决方案 »
- [MYSQL]----SELECT * INTO OUTFILE如何实现将导出的文件是在客户端,而不是服务器呢?
- 如何比较好地处理这些数据呢
- 怎么查询某个字段最后修改的时间
- 用sqlyog导入数据乱码,百度了些方法如下,也不行
- 求一个简单的SQL语句
- 请问:mysql里的左连接(left)与左外连接(left outer join)有什么区别么
- 请问我下载了个MySQL Connector/ODBC 3.51,要想使用它,是不是还要有个DLL驱动啊?
- 我在WIN2000下装了MYSQL(给我满意答案的我愿给200分,急)
- 本地机器如何判断远程机器是否安装MYSQL,如果安装了如何检测某个数据库存在
- 百万级数据如何关联查询
- 多个mysql表中的相同字段如何求和。
- 搞不明白了,请教想要这种效果怎么写SQL语句
EXPLAIN PARTITIONS SELECT * FROM trb1