MYSQL数据库MySQL数据库分区功能的使用教程
副标题[/!--empirenews.page--]
《MYSQL数据库MySQL数据库分区功能的使用教程》要点: 零,什么是数据库分区 一,横向分区 ALTER TABLE `yl_hospital_url` PARTITION BY RANGE(ID) ( PARTITION `p0` VALUES LESS THAN (100000),PARTITION `p1` VALUES LESS THAN (200000),PARTITION `p2` VALUES LESS THAN (300000),PARTITION `p3` VALUES LESS THAN (400000),PARTITION `p4` VALUES LESS THAN (500000),PARTITION `p5` VALUES LESS THAN (600000),PARTITION `p6` VALUES LESS THAN (700000),PARTITION `p7` VALUES LESS THAN (MAXVALUE) ) ; 分区前查询速度 分区前查询速度 二,mysql的分区 [root@BlackGhost mysql-5.1.50]# ./configure --help |grep -A 3 Partition === Partition Support === Plugin Name: partition Description: MySQL Partitioning Support Supports build: static Configurations: max,max-no-ndb ?查看一下,如果发现有上面这个东西,说明他是支持分区的,默认是打开的.如果你已经安装过了mysql的话MYSQL实例 mysql> show variables like "%part%"; +-------------------+-------+ | Variable_name | Value | +-------------------+-------+ | have_partitioning | YES | +-------------------+-------+ 1 row in set (0.00 sec) ?查看一下变量,如果支持的话,会有上面的提示的.MYSQL实例 2,range分区 创建range分区表? mysql> CREATE TABLE IF NOT EXISTS `user` ( -> `id` int(11) NOT NULL AUTO_INCREMENT COMMENT '用户ID',-> `name` varchar(50) NOT NULL DEFAULT '' COMMENT '名称',-> `sex` int(1) NOT NULL DEFAULT '0' COMMENT '0为男,1为女',-> PRIMARY KEY (`id`) -> ) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 -> PARTITION BY RANGE (id) ( -> PARTITION p0 VALUES LESS THAN (3),-> PARTITION p1 VALUES LESS THAN (6),-> PARTITION p2 VALUES LESS THAN (9),-> PARTITION p3 VALUES LESS THAN (12),-> PARTITION p4 VALUES LESS THAN MAXVALUE -> ); Query OK,0 rows affected (0.13 sec) ? mysql> INSERT INTO `test`.`user` (`name`,`sex`)VALUES ('tank','0') ->,('zhang',1),('ying',('张',('映',0),('test1',('tank2',1) ->,('tank1',('test2',('test3',('test4',('test5',('tank3',('tank4',('tank5',('tank6',('tank7',('tank8',('tank9',('tank10',('tank11',('tank12',('tank13',('tank21',('tank42',1); Query OK,25 rows affected (0.05 sec) Records: 25 Duplicates: 0 Warnings: 0 ? [root@BlackGhost test]# ls |grep user |xargs du -sh 4.0K user#P#p0.MYD 4.0K user#P#p0.MYI 4.0K user#P#p1.MYD 4.0K user#P#p1.MYI 4.0K user#P#p2.MYD 4.0K user#P#p2.MYI 4.0K user#P#p3.MYD 4.0K user#P#p3.MYI 4.0K user#P#p4.MYD 4.0K user#P#p4.MYI 12K user.frm 4.0K user.par ? mysql> select count(id) as count from user; +-------+ | count | +-------+ | 25 | +-------+ 1 row in set (0.00 sec) ? mysql> alter table user drop partition p4; Query OK,0 rows affected (0.11 sec) Records: 0 Duplicates: 0 Warnings: 0 ?? /**存放在分区里面的数据丢失了,第四个分区里面有14条数据,剩下的3个分区 只有11条数据,但是统计出来的文件大小都是4.0K,从这儿我们可以看出分区的 最小区块是4K */ mysql> select count(id) as count from user; +-------+ | count | +-------+ | 11 | +-------+ 1 row in set (0.00 sec) (编辑:通辽站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |