六月婷婷综合激情-六月婷婷综合-六月婷婷在线观看-六月婷婷在线-亚洲黄色在线网站-亚洲黄色在线观看网站

明輝手游網中心:是一個免費提供流行視頻軟件教程、在線學習分享的學習平臺!

詳細說明mysql重建表分區并保留數據的相關方法

[摘要]本文介紹mysql重建表分區并保留數據的方法,mysql的表分區(partition)可以把一個表的記錄分開多個區去存儲,查詢時可根據查詢的條件在對應的分區搜尋,而不需要整表查詢,提高查詢效率。有分...

本文介紹mysql重建表分區并保留數據的方法,mysql的表分區(partition)可以把一個表的記錄分開多個區去存儲,查詢時可根據查詢的條件在對應的分區搜尋,而不需要整表查詢,提高查詢效率。

有分區的表與沒有分區的表使用上沒有太大的區別,但如果要對表進行重新分區,刪除分區重建會刪除數據,因此不可直接進行操作,需要使用一些特別的處理實現。

mysql重建表分區并保留數據的方法:

1.創建與原始表一樣結構的新表,新分區。
2.將原始表中數據復制到新表。
3.刪除原始表。
4.將新表名稱改為原始表名稱。

實例:

日志表原始結構如下,按id分區。

CREATE DATABASE `test`;use `test`;CREATE TABLE `log` ( `id` int(11) unsigned NOT NULL AUTO_INCREMENT, `content` text NOT NULL COMMENT '內容', `status` tinyint(3) unsigned NOT NULL COMMENT '記錄狀態', `addtime` int(11) unsigned NOT NULL COMMENT '添加時間', `lastmodify` int(11) unsigned NOT NULL COMMENT '最后修改時間', PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8
/*!50100 PARTITION BY RANGE (id)
(PARTITION p10w VALUES LESS THAN (100000) ENGINE = InnoDB,
PARTITION p20w VALUES LESS THAN (200000) ENGINE = InnoDB,
PARTITION p50w VALUES LESS THAN (500000) ENGINE = InnoDB,
PARTITION p100w VALUES LESS THAN (1000000) ENGINE = InnoDB,
PARTITION pmax VALUES LESS THAN MAXVALUE ENGINE = InnoDB) */;insert into `log`(content,status,addtime,lastmodify) 
values('content1',1, unix_timestamp('2018-01-11 00:00:00'), unix_timestamp('2018-01-11 00:00:00')),
('content2',1, unix_timestamp('2018-02-22 00:00:00'), unix_timestamp('2018-02-22 00:00:00')),
('content3',1, unix_timestamp('2018-03-31 00:00:00'), unix_timestamp('2018-03-31 00:00:00'));

查看數據分區分布

SELECT PARTITION_NAME,TABLE_ROWS FROM INFORMATION_SCHEMA.PARTITIONS WHERE TABLE_SCHEMA='test' AND TABLE_NAME = 'log';+----------------+------------+  PARTITION_NAME   TABLE_ROWS  
+----------------+------------+  p10w                      3  
  p20w                      0  
  p50w                      0  
  p100w                     0    pmax                      0  
+----------------+------------+


日志數據需要按時間進行搜尋,因此需要按日志時間重建分區

1.創建log2,按時間分區(每月1個分區)

CREATE TABLE `log2` ( `id` int(11) unsigned NOT NULL AUTO_INCREMENT, `content` text NOT NULL COMMENT '內容', `status` tinyint(3) unsigned NOT NULL COMMENT '記錄狀態', `addtime` int(11) unsigned NOT NULL COMMENT '添加時間', `lastmodify` int(11) unsigned NOT NULL COMMENT '最后修改時間', PRIMARY KEY (`id`,`addtime`), KEY `id`(`id`), KEY `addtime`(`addtime`)
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8
/*!50100 PARTITION BY RANGE (addtime)
(PARTITION p201801 VALUES LESS THAN (unix_timestamp('2018-02-01 00:00:00')) ENGINE = InnoDB,
PARTITION p201802 VALUES LESS THAN (unix_timestamp('2018-03-01 00:00:00')) ENGINE = InnoDB,
PARTITION p201803 VALUES LESS THAN (unix_timestamp('2018-04-01 00:00:00')) ENGINE = InnoDB,
PARTITION p201804 VALUES LESS THAN (unix_timestamp('2018-05-01 00:00:00')) ENGINE = InnoDB,
PARTITION pmax VALUES LESS THAN MAXVALUE ENGINE = InnoDB) */;


2.將log的數據復制到log2

insert into `log2` select * from `log`;


3.刪除log表

drop table `log`;


4.將log2表改名為log

rename table `log2` to `log`;


執行后查看數據分區分布

SELECT PARTITION_NAME,TABLE_ROWS FROM INFORMATION_SCHEMA.PARTITIONS WHERE TABLE_SCHEMA='test' AND TABLE_NAME = 'log';+----------------+------------+  PARTITION_NAME   TABLE_ROWS  
+----------------+------------+  p201801                   1  
  p201802                   1  
  p201803                   1  
  p201804                   0    pmax                      0  
+----------------+------------+

可以看到log表的數據已經按新分區存儲。

本篇文章講解了mysql重建表分區并保留數據的相關方法,更多相關知識請關注php中文網。

相關推薦:

關于php json_encode不支持對象私有屬性的講解

講解PHP生成唯一RequestID類相關內容

MySQL查看數據庫表容量大小

以上就是詳解mysql重建表分區并保留數據的相關方法的詳細內容,更多請關注php中文網其它相關文章!


學習教程快速掌握從入門到精通的SQL知識。




主站蜘蛛池模板: 日韩精品在线观看视频 | 无码中文字幕日韩专区 | 天天干夜夜爽天天操夜夜爽视频 | 天天干天天射天天爽 | 手机看片日韩高清国产欧美 | 亚洲成年男人的天堂网 | 香蕉狠狠干 | 日韩色视频在线观看 | 日韩中字在线 | 亚洲精品在线观看91 | 亚洲精品乱码国产精品乱码 | 日韩一区二区视频在线观看 | 欧美一级中文字幕 | 亚洲xx在线| 五月综合激情网 | 亚洲一级片在线播放 | 欧美影院| 青草网址 | 亚洲伦理网站 | 在线看欧美成人中文字幕视频 | 天天在线干 | 又大又粗又长又硬好爽国产 | 中文国产日韩欧美视频 | 人人干狠狠操 | 中文字幕在线观看日本 | 亚洲欧美视频在线播放 | 日本性欧美 | 小说区 亚洲 自拍 另类 | 欧美最新在线 | 亚洲欧美日本在线观看 | 日韩一区国产二区欧美三区 | 青草热视频 | 亚洲a级大片 | 性xxx视频在线观看 性xxx欧美 | 亚洲成a v人片在线观看 | 青青草精品在线 | 日韩免费中文字幕 | 伊人久久婷婷 | 亚洲综合色婷婷六月丁香 | 色噜噜亚洲 | 小草影院在线观看 |