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如何做增量备份后还原出错,请高手指点 LEGACY_MYSQL键值无法删除 可否用文本文件写存储过程? mysql自定义函数 高手来解决下! mysql update 语句如何获得当前行数据? 关于建立索引的问题? 诚心求教简单问题! like中文查询大数据量效率太差的问题 phpmyadmin数据库A里面有B和C两个独立的数据库,怎么创建的? 求教 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>