好湿?好紧?好多水好爽自慰,久久久噜久噜久久综合,成人做爰A片免费看黄冈,机机对机机30分钟无遮挡

主頁 > 知識庫 > MySQL分區表的基本入門教程

MySQL分區表的基本入門教程

熱門標簽:云南大數據外呼系統 怎么更改高德地圖標注 機器人打電銷電話 電話機器人是電腦呼號嗎 400電話到哪辦理優惠 博樂電銷機器人 鄭州網絡外呼系統價錢 南寧外呼系統招商 上海市三維地圖標注

前言

在最近的項目中,我們需要保存大量的數據,而且這些數據是有有效期的,為了提供查詢效率以及快速刪除過期數據,我們選擇了MySQL的分區機制。把數據按照時間進行分區。

分區類型

  • Range分區:最為常用,基于屬于一個給定連續區間的列值,把多行分配給分區。最常見的是基于時間字段. 基于分區的列最好是整型,如果日期型的可以使用函數轉換為整型。
  • List分區:LIST分區和RANGE分區類似,區別在于LIST是枚舉值列表的集合,RANGE是連續的區間值的集合。
  • Hash分區:基于給定的分區個數,將數據分配到不同的分區,HASH分區只能針對整數進行HASH,對于非整形的字段只能通過表達式將其轉換成整數。
  • Key分區:KEY分區其實跟HASH分區差不多,不同點如下:
    • KEY分區允許多列,而HASH分區只允許一列。
    • 如果在有主鍵或者唯一鍵的情況下,key中分區列可不指定,默認為主鍵或者唯一鍵,如果沒有,則必須顯性指定列。
    • KEY分區對象必須為列,而不能是基于列的表達式。
    • KEY分區和HASH分區的算法不一樣,PARTITION BY HASH (expr),MOD取值的對象是expr返回的值,而PARTITION BY KEY (column_list),基于的是列的MD5值。

分區命令

創建分區

CREATE TABLE `access_log` (
 `id` int(11) NOT NULL AUTO_INCREMENT,
 `access_time` datetime NOT NULL,
 PRIMARY KEY (`id`,`access_time`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8
/*!50100 PARTITION BY RANGE (to_days(access_time))
(PARTITION p1 VALUES LESS THAN (to_days(20190101)) ENGINE = InnoDB,
 PARTITION p2 VALUES LESS THAN (to_days(20190102)) ENGINE = InnoDB,
 PARTITION p3 VALUES LESS THAN (to_days(20190103)) ENGINE = InnoDB) */;

創建后可以看到,每個分區都會對應1個ibd文件


分區表

新增分區

alter table access_log add partition(
 partition p4 values less than (to_days('20190105'))
);

刪除分區

alter table access_log drop partition p1;

拆分分區

alter table access_log reorganize partition p4 into(
 -> partition s0 values less than(to_days('20190104')),
 -> partition s1 values less than(to_days('20190105'))
 -> );

合并分區

alter table access_log reorganize partition s0,s1 into ( 
 partition p4 values less than (to_days('20190105')) 
);

注意事項

  • MySQL分區中如果存在主鍵或唯一鍵,則分區列必須包含在其中(否則判斷主鍵或唯一時,需要掃描所有分區)
  • 分區字段不能為NULL,要不然怎么確定分區范圍呢,所以盡量NOT NULL
  • 最大分區數目不能超過1024
  • 不支持外鍵
  • 只能對數據表的整型列進行分區,或者數據列可以通過分區函數轉化成整型列
  • 分區表不影響自增列

常見問題

  • A PRIMARY KEY must include all columns in the table's partitioning function:這樣的話判斷主鍵是否唯一就可以在單個分區內部完成,否則就需要跨所有的分區
  • MAXVALUE can only be used in last partition definition:RANGE表分區后不能帶MAXVALUE分區,否則無法增加分區。或者就只能重新分區了
alter table access_log partition by range(to_days(access_time))(
partition p1 values less than (to_days('20191202')), 
partition p2 values less than (to_days('20191203')), 
 partition po values less than (maxvalue)
)
  • Table has no partition for value 737425:因為分區的范圍沒有包含所有可能的記錄的值

參考

  • MySQL · 最佳實踐 · 分區表基本類型
  • 互聯網公司為啥不使用mysql分區表?
  • How to Resolve ERROR 1481 (HY000): MAXVALUE can only be used in last partition definition

總結

到此這篇關于MySQL分區表基本入門教程的文章就介紹到這了,更多相關MySQL分區表內容請搜索腳本之家以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持腳本之家!

您可能感興趣的文章:
  • Mysql臨時表及分區表區別詳解
  • MySQL最佳實踐之分區表基本類型
  • MySQL優化之分區表
  • 解決mysql刪除用戶 bug的問題
  • MySQL對window函數執行sum函數可能出現的一個Bug
  • MySQL關于exists的一個bug
  • CentOS 安裝 PHP5.5+Redis+XDebug+Nginx+MySQL全紀錄
  • 關于MySQL分區表的一個性能BUG

標簽:恩施 秦皇島 杭州 定西 澳門 益陽 寧夏 白銀

巨人網絡通訊聲明:本文標題《MySQL分區表的基本入門教程》,本文關鍵詞  MySQL,分區表,的,基本,入門教程,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《MySQL分區表的基本入門教程》相關的同類信息!
  • 本頁收集關于MySQL分區表的基本入門教程的相關信息資訊供網民參考!
  • 推薦文章
    主站蜘蛛池模板: 18男同同性videos视频| 国产毛A片午夜免费视频| 亚洲精品二区中文字幕| 男女性生性活视频超爽| 欧美一区二区三区天天爽| 精品无码一区二区三区爱欲88| 艹逼软件大全| 用力别停受不了的小说| 亚洲 自拍 另类小说综合图区| 18?精品?爽?国产| 亚洲欧美日韩另类小说| 公么吃奶摸下面好舒服| 嗯嗯啊啊哦| 国产又粗又猛又色又黃动图视频| 国产精品久久久久久吹潮小仓菜| 性感美女裸体图| 性炮床八爪椅合欢| 扒开腿挺进肉嫩小泬18禁小说| 男女被狂c躁到高潮失禁| free性欧美video69| 双子男晾着还是粘着好| 草草影院第一页yycccom| 色秘?乱码一区二区三区唱戏| 男生插女生视频免费| 69xx主播农村勾搭老头| 20岁chinese男同志gay| 日本h片无遮挡在线观看| 一级中国毛片| free男子游泳部剧场版| 国产精品无码一二三区免费大肉| 91精品国产99久久久久久红楼| 古代一级无遮挡一级毛片| 欧美一交一乱一色一按| 91又大又爽又黄无码A片| 影音先锋一区二区三区视频特色| babes性欧美高清| 麻豆成人在线视频| 国产妇女乱一性一交| 第0057章 公交车上弄少妇小说| 女性私密紧致视频| 老师让我吃她胸??摸她奶樱花|