MYSQL 表分区问题 公司数据库在建表的时候没有分区,现在想采用分区的办法提升效率,请问前辈门:可不可以在未分区表的基础上升级为分区表~而不变动内部的数据? 还有大家对mysql 表分区功能有什么评价? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 第18章:分区目录18.1. MySQL中的分区概述18.2. 分区类型18.2.1. RANGE分区18.2.2. LIST分区18.2.3. HASH分区18.2.4. KEY分区18.2.5. 子分区18.2.6. MySQL分区处理NULL值的方式18.3. 分区管理18.3.1. RANGE和LIST分区的管理18.3.2. HASH和KEY分区的管理18.3.3. 分区维护18.3.4. 获取关于分区的信息你重新建立一个新表(分区好),再把未分区的表的数据导进去;分区简单,容易管理,速度感觉没多少提升; 你可以直接ALTER TABLE把现在的表改为分区表啊。 对,这个就是我最想要的, 可不可以给我写个简单的例子?将未分区表直接alter成一个分区表 例子:mysql> create table tb_test_dt(id int,memo varchar(20),input_time datetime);Query OK, 0 rows affected (0.08 sec)mysql> alter table tb_test_dt -> partition by range(yearweek(input_time)) -> ( -> partition p1 values less than (200920), -> partition p2 values less than (200925), -> partition p3 values less than (200930), -> partition p4 values less than maxvalue -> );Query OK, 0 rows affected (0.33 sec)Records: 0 Duplicates: 0 Warnings: 0mysql> show create table tb_test_dt \G*************************** 1. row *************************** Table: tb_test_dtCreate Table: CREATE TABLE `tb_test_dt` ( `id` int(11) DEFAULT NULL, `memo` varchar(20) DEFAULT NULL, `input_time` datetime DEFAULT NULL) ENGINE=InnoDB DEFAULT CHARSET=utf8/*!50100 PARTITION BY RANGE (yearweek(input_time))(PARTITION p1 VALUES LESS THAN (200920) ENGINE = InnoDB, PARTITION p2 VALUES LESS THAN (200925) ENGINE = InnoDB, PARTITION p3 VALUES LESS THAN (200930) ENGINE = InnoDB, PARTITION p4 VALUES LESS THAN MAXVALUE ENGINE = InnoDB) */1 row in set (0.02 sec)mysql> mysql的数据库,一个外键的问题。 求一SQL语句 关于mysql innodb 数据的恢复问题 請問在windows下如何連接linux下的MYSQL請大家推荐几個好工具﹐不知道有沒有 求救,用c#编程来操作mysql数据库问题 mysql批量插入不同数据问题 mysql数据存储,存储盘满了该怎么处理? 关于LIKE匹配结果的顺序问题 mysql一表连多表,多表其中一表又关联多表,这能关联能查询吗? mysql 删除多个图片路径中的 某一个路径? MySQL的一些历史遗留问题,希望ACMAIN_CHM、zuoxingyu等高手帮忙回答下 MySQL 5.5.9 自动退出
目录18.1. MySQL中的分区概述
18.2. 分区类型
18.2.1. RANGE分区
18.2.2. LIST分区
18.2.3. HASH分区
18.2.4. KEY分区
18.2.5. 子分区
18.2.6. MySQL分区处理NULL值的方式
18.3. 分区管理
18.3.1. RANGE和LIST分区的管理
18.3.2. HASH和KEY分区的管理
18.3.3. 分区维护
18.3.4. 获取关于分区的信息你重新建立一个新表(分区好),再把未分区的表的数据导进去;
分区简单,容易管理,速度感觉没多少提升;
mysql> create table tb_test_dt(id int,memo varchar(20),input_time datetime);
Query OK, 0 rows affected (0.08 sec)mysql> alter table tb_test_dt
-> partition by range(yearweek(input_time))
-> (
-> partition p1 values less than (200920),
-> partition p2 values less than (200925),
-> partition p3 values less than (200930),
-> partition p4 values less than maxvalue
-> );
Query OK, 0 rows affected (0.33 sec)
Records: 0 Duplicates: 0 Warnings: 0mysql> show create table tb_test_dt \G
*************************** 1. row ***************************
Table: tb_test_dt
Create Table: CREATE TABLE `tb_test_dt` (
`id` int(11) DEFAULT NULL,
`memo` varchar(20) DEFAULT NULL,
`input_time` datetime DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8
/*!50100 PARTITION BY RANGE (yearweek(input_time))
(PARTITION p1 VALUES LESS THAN (200920) ENGINE = InnoDB,
PARTITION p2 VALUES LESS THAN (200925) ENGINE = InnoDB,
PARTITION p3 VALUES LESS THAN (200930) ENGINE = InnoDB,
PARTITION p4 VALUES LESS THAN MAXVALUE ENGINE = InnoDB) */
1 row in set (0.02 sec)mysql>