婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av

主頁 > 知識庫 > 詳解MySQL分區表

詳解MySQL分區表

熱門標簽:臨沂做地圖標注 廣東400企業電話申請流程 地圖標注客戶付款 新鄉智能外呼系統好處 石家莊400電話辦理公司 許昌外呼增值業務線路 咸陽防封電銷卡 申請400電話電話價格 宜賓全自動外呼系統廠家

前言:

分區是一種表的設計模式,通俗地講表分區是將一大表,根據條件分割成若干個小表。但是對于應用程序來講,分區的表和沒有分區的表是一樣的。換句話來講,分區對于應用是透明的,只是數據庫對于數據的重新整理。本篇文章給大家帶來的內容是關于MySQL中分區表的介紹及使用場景,有需要的朋友可以參考一下,希望對你有所幫助。

1.分區的目的及分區類型

MySQL在創建表的時候可以通過使用PARTITION BY子句定義每個分區存放的數據。在執行查詢的時候,優化器根據分區定義過濾那些沒有我們需要的數據的分區,這樣查詢就可以無需掃描所有分區,只需要查找包含需要數據的分區即可。

分區的另一個目的是將數據按照一個較粗的粒度分別存放在不同的表中。這樣做可以將相關的數據存放在一起,另外,當我們想要一次批量刪除整個分區的數據也會變得很方便。

下面簡單介紹下四種常見的分區類型:

  • RANGE分區:最為常用,基于屬于一個給定連續區間的列值,把多行分配給分區。最常見的是基于時間字段。
  • LIST分區:LIST分區和RANGE分區類似,區別在于LIST是枚舉值列表的集合,RANGE是連續的區間值的集合。
  • HASH分區:基于用戶定義的表達式的返回值來進行選擇的分區,該表達式使用將要插入到表中的這些行的列值進行計算。這個函數可以包含MySQL中有效的、產生非負整數值的任何表達式。
  • KEY分區:類似于按HASH分區,區別在于KEY分區只支持計算一列或多列,且MySQL服務器提供其自身的哈希函數。必須有一列或多列包含整數值。

上述四種分區類型中,RANGE分區 即范圍分區是最常用的。RANGE分區的特點是多個分區的范圍要連續,但是不能重疊,默認情況下使用VALUES LESS THAN屬性,即每個分區不包括指定的那個值。

2.分區操作示例

本節內容以RANGE分區為例,介紹下分區表相關的操作。

# 創建分區表
mysql> CREATE TABLE `tr` (
 -> `id` INT, 
 -> `name` VARCHAR(50), 
 -> `purchased` DATE
 -> ) ENGINE=InnoDB DEFAULT CHARSET=utf8
 -> PARTITION BY RANGE( YEAR(purchased) ) (
 -> PARTITION p0 VALUES LESS THAN (1990),
 -> PARTITION p1 VALUES LESS THAN (1995),
 -> PARTITION p2 VALUES LESS THAN (2000),
 -> PARTITION p3 VALUES LESS THAN (2005),
 -> PARTITION p4 VALUES LESS THAN (2010),
 -> PARTITION p5 VALUES LESS THAN (2015)
 -> );
Query OK, 0 rows affected (0.28 sec)

# 插入數據
mysql> INSERT INTO `tr` VALUES
 ->  (1, 'desk organiser', '2003-10-15'),
 ->  (2, 'alarm clock', '1997-11-05'),
 ->  (3, 'chair', '2009-03-10'),
 ->  (4, 'bookcase', '1989-01-10'),
 ->  (5, 'exercise bike', '2014-05-09'),
 ->  (6, 'sofa', '1987-06-05'),
 ->  (7, 'espresso maker', '2011-11-22'),
 ->  (8, 'aquarium', '1992-08-04'),
 ->  (9, 'study desk', '2006-09-16'),
 ->  (10, 'lava lamp', '1998-12-25');
Query OK, 10 rows affected (0.03 sec)
Records: 10 Duplicates: 0 Warnings: 0

創建后可以看到,每個分區都會對應1個ibd文件。上面創建語句還是很好理解的,在此分區表中,通過YEAR函數取出DATE日期中的年份并轉化為整型,年份小于1990的存儲在分區p0中,小于1995的存儲在分區p1中,以此類推。請注意,每個分區的定義順序是從最低到最高。為了防止插入的數據因找不到相應分區而報錯,我們應該及時創建新的分區。下面繼續展示關于分區維護的其他操作。

# 查看某個分區的數據
mysql> SELECT * FROM tr PARTITION (p2);
+------+-------------+------------+
| id | name  | purchased |
+------+-------------+------------+
| 2 | alarm clock | 1997-11-05 |
| 10 | lava lamp | 1998-12-25 |
+------+-------------+------------+
2 rows in set (0.00 sec)

# 增加分區
mysql> alter table tr add partition(
 -> PARTITION p6 VALUES LESS THAN (2020)
 -> );
Query OK, 0 rows affected (0.06 sec)
Records: 0 Duplicates: 0 Warnings: 0

# 拆分分區
mysql> alter table tr reorganize partition p5 into(
 -> partition s0 values less than(2012),
 -> partition s1 values less than(2015)
 -> );
Query OK, 0 rows affected (0.26 sec)
Records: 0 Duplicates: 0 Warnings: 0

# 合并分區
mysql> alter table tr reorganize partition s0,s1 into ( 
 ->  partition p5 values less than (2015) 
 -> );
Query OK, 0 rows affected (0.12 sec)
Records: 0 Duplicates: 0 Warnings: 0

# 清空某分區的數據
mysql> alter table tr truncate partition p0;
Query OK, 0 rows affected (0.11 sec)

# 刪除分區
mysql> alter table tr drop partition p1;
Query OK, 0 rows affected (0.06 sec)
Records: 0 Duplicates: 0 Warnings: 0

# 交換分區
# 先創建與分區表同樣結構的交換表
mysql> CREATE TABLE `tr_archive` (
 -> `id` INT, 
 -> `name` VARCHAR(50), 
 -> `purchased` DATE
 -> ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
Query OK, 0 rows affected (0.28 sec)
# 執行exchange交換分區
mysql> alter table tr exchange PARTITION p2 with table tr_archive;
Query OK, 0 rows affected (0.13 sec) 

3.分區注意事項及適用場景

其實分區表的使用有很多限制和需要注意的事項,參考官方文檔,簡要總結幾點如下:

  • 分區字段必須是整數類型或解析為整數的表達式。
  • 分區字段建議設置為NOT NULL,若某行數據分區字段為null,在RANGE分區中,該行數據會劃分到最小的分區里。
  • MySQL分區中如果存在主鍵或唯一鍵,則分區列必須包含在其中。
  • Innodb分區表不支持外鍵。
  • 更改sql_mode模式可能影響分區表的表現。
  • 分區表不影響自增列。

從上面的介紹中可以看出,分區表適用于一些日志記錄表。這類表的特點是數據量大、并且有冷熱數據區分,可以按照時間維度來進行數據歸檔。這類表是比較適合使用分區表的,因為分區表可以對單獨的分區進行維護,對于數據歸檔更方便。

4.分區表為什么不常用

在我們項目開發中,分區表其實是很少用的,下面簡單說明下幾點原因:

  • 分區字段的選擇有限制。
  • 若查詢不走分區鍵,則可能會掃描所有分區,效率不會提升。
  • 若數據分布不均,分區大小差別較大,可能性能提升也有限。
  • 普通表改造成分區表比較繁瑣。
  • 需要持續對分區進行維護,比如到了6月份前就要新增6月份的分區。
  • 增加學習成本,存在未知風險。

總結:

本文較為詳細的介紹了MySQL分區相關內容,如果想使用分區表的話,建議提早做好規劃,在初始化的時候即創建分區表并制定維護計劃,使用得當還是比較方便的,特別是有歷史數據歸檔需求的表,使用分區表會使歸檔更方便。當然,關于分區表的內容還有很多,有興趣的同學可以找找官方文檔,官方文檔中有大量示例。

以上就是詳解MySQL分區表的詳細內容,更多關于MySQL分區表的資料請關注腳本之家其它相關文章!

您可能感興趣的文章:
  • MySQL分庫分表與分區的入門指南
  • python 實現mysql自動增刪分區的方法
  • MySql分表、分庫、分片和分區知識深入詳解
  • MySQL學習記錄之KEY分區引發的血案
  • Mysql臨時表及分區表區別詳解
  • MySQL最佳實踐之分區表基本類型
  • MySQL分區表的最佳實踐指南
  • MySql分表、分庫、分片和分區知識點介紹
  • MySQL分表和分區的具體實現方法
  • MySQL分區表的正確使用方法
  • MySQL高級特性——數據表分區的概念及機制詳解

標簽:阜新 臺灣 鷹潭 日照 北京 鎮江 貴州 合肥

巨人網絡通訊聲明:本文標題《詳解MySQL分區表》,本文關鍵詞  詳解,MySQL,分區表,詳解,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《詳解MySQL分區表》相關的同類信息!
  • 本頁收集關于詳解MySQL分區表的相關信息資訊供網民參考!
  • 推薦文章
    婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av
    国产成人综合网| 精品美女一区二区| 午夜不卡av在线| 日韩久久免费av| 精品黑人一区二区三区久久| 日韩avvvv在线播放| 日韩国产精品久久| 久色婷婷小香蕉久久| 亚洲女性喷水在线观看一区| 亚洲18女电影在线观看| 欧美一级二级三级蜜桃| 日本精品免费观看高清观看| 日韩精品欧美精品| 丝袜美腿亚洲色图| 激情五月婷婷综合| 精品一区二区影视| 欧美日韩极品在线观看一区| 91国产视频在线观看| 色噜噜狠狠色综合欧洲selulu| 国产成a人无v码亚洲福利| 欧美日韩一区二区三区在线 | 欧美一区二区三区四区高清| 9191成人精品久久| 国产色一区二区| 亚洲欧洲制服丝袜| 中文字幕一区二区三区不卡在线 | 666欧美在线视频| 久久久久久久精| 97久久超碰国产精品| 国产亚洲一区二区三区在线观看| 日本美女一区二区| 欧美日产在线观看| 国产精品视频一二三| 风间由美中文字幕在线看视频国产欧美 | 激情欧美日韩一区二区| 日本精品免费观看高清观看| 国产午夜精品一区二区三区四区| 亚洲欧美色一区| 91蝌蚪porny| 国产精品色一区二区三区| 欧美一区二区久久久| 成人精品视频一区二区三区| 日韩美女视频一区二区| 欧美日韩国产综合一区二区三区| 亚洲国产精品尤物yw在线观看| 国产精品一区二区视频| 中文无字幕一区二区三区 | 国产精品综合久久| 欧美国产精品久久| 激情五月婷婷综合| 国产精品美女久久久久久久网站| 久久老女人爱爱| 国产精品1区二区.| 91精品啪在线观看国产60岁| 亚洲精品高清在线观看| 自拍偷拍亚洲欧美日韩| 色偷偷久久人人79超碰人人澡| 国产精品一区二区久久精品爱涩| 偷拍与自拍一区| 麻豆国产欧美日韩综合精品二区| 亚洲曰韩产成在线| 国产精品久久三| 亚洲免费视频成人| 亚洲综合激情网| 亚洲人成伊人成综合网小说| 精品国产制服丝袜高跟| 91视频免费看| 国产精品综合av一区二区国产馆| 艳妇臀荡乳欲伦亚洲一区| 日韩精品国产欧美| 91天堂素人约啪| 国产精品中文字幕日韩精品| 免费观看30秒视频久久| 久久超碰97人人做人人爱| 亚洲成av人**亚洲成av**| 亚洲亚洲精品在线观看| 国产成人在线看| 欧美老女人第四色| 亚洲人xxxx| 亚洲人123区| 久久99热99| 亚洲成人av福利| 一区二区免费看| 欧美性感一区二区三区| 99久久99久久精品免费观看| 精品少妇一区二区三区日产乱码| 91在线观看污| 国产精品一区免费视频| 欧美性生交片4| www.久久久久久久久| 日韩精品中文字幕在线不卡尤物| 一区二区三区产品免费精品久久75| 不卡的av在线播放| 中文字幕中文乱码欧美一区二区 | 色婷婷综合中文久久一本| 久久精品国产精品亚洲综合| www.久久久久久久久| 亚洲精品国产a| 9久草视频在线视频精品| 欧美成人三级在线| 欧美高清视频一二三区 | 国产精品欧美一区喷水| 成人不卡免费av| 久久久高清一区二区三区| 久久99久久99精品免视看婷婷| www.亚洲色图.com| 国产精品三级视频| 最新欧美精品一区二区三区| 国产成人午夜高潮毛片| 99国产精品久| 一区二区三区在线观看视频| 日本韩国欧美在线| 欧美一区二区免费| 狂野欧美性猛交blacked| 蜜臀av一区二区三区| 久久综合色天天久久综合图片| 2017欧美狠狠色| 成人永久aaa| 国产v综合v亚洲欧| 亚洲激情网站免费观看| 欧美美女黄视频| 2017欧美狠狠色| 欧美极品xxx| 丁香六月久久综合狠狠色| 日韩一区和二区| 欧美高清在线一区| 欧美在线999| 久久久美女艺术照精彩视频福利播放 | 在线成人免费视频| 高清视频一区二区| 中文字幕在线观看一区| 亚洲在线中文字幕| 欧美精品精品一区| 国产真实乱偷精品视频免| 欧美男人的天堂一二区| 丝袜国产日韩另类美女| 国产黄色91视频| 一区二区三区视频在线观看| 国产精品一二三四| 懂色一区二区三区免费观看| 欧美色倩网站大全免费| 日本一区二区成人| 麻豆免费精品视频| 经典三级视频一区| 一区二区三区电影在线播| 777午夜精品视频在线播放| 精品国产亚洲在线| 91蜜桃免费观看视频| 国产一区二区在线看| 日韩欧美国产不卡| 亚洲人成亚洲人成在线观看图片| 久久久精品天堂| 欧美视频日韩视频在线观看| 综合欧美亚洲日本| 26uuu精品一区二区| 久久久久久免费网| 欧美午夜精品理论片a级按摩| proumb性欧美在线观看| 青青草伊人久久| 精品视频一区二区三区免费| 国产ts人妖一区二区| 久久久91精品国产一区二区精品 | 国产精品毛片大码女人| 色8久久精品久久久久久蜜| 日本久久电影网| 亚洲成人精品一区| 日本人妖一区二区| 日欧美一区二区| 精品国产sm最大网站免费看| 亚洲精品一区二区三区在线观看 | 国产日本欧美一区二区| 欧美中文字幕不卡| 99riav一区二区三区| 国产亚洲欧美日韩俺去了| 精品一区二区三区在线视频| 在线欧美一区二区| 一区二区三区欧美亚洲| 国产日韩av一区二区| 在线观看日韩一区| 欧美午夜在线一二页| 一级特黄大欧美久久久| 亚洲图片你懂的| 午夜精品在线看| 91精品在线免费观看| 欧美电影影音先锋| 日韩电影在线观看网站| 天堂蜜桃91精品| 日韩欧美在线123| 亚洲精品一区二区三区四区高清 | 日韩精品一区二区三区中文精品| 欧美在线观看18| 美女国产一区二区| 蜜桃视频一区二区三区| 99视频超级精品| 一区二区欧美视频| 欧美一区二区三区不卡| 亚洲成人av电影| 欧美剧情片在线观看| 欧美精选在线播放| 日韩欧美一卡二卡|