欧美阿v视频在线大全_亚洲欧美中文日韩V在线观看_www性欧美日韩欧美91_亚洲欧美日韩久久精品

主頁 > 知識庫 > 什么是分表和分區 MySql數據庫分區和分表方法

什么是分表和分區 MySql數據庫分區和分表方法

熱門標簽:手機外呼系統違法嗎 谷歌地圖標注位置圖解 清遠申請400電話 桂林云電銷機器人收費 沈陽智能外呼系統供應商 南通電銷外呼系統哪家強 如何選擇優質的外呼系統 東莞外呼企業管理系統 地圖簡圖標注

1、為什么要分表和分區

日常開發中我們經常會遇到大表的情況,所謂的大表是指存儲了百萬級乃至千萬級條記錄的表。這樣的表過于龐大,導致數據庫在查詢和插入的時候耗時太長,性能低下,如果涉及聯合查詢的情況,性能會更加糟糕。分表和表分區的目的就是減少數據庫的負擔,提高數據庫的效率,通常點來講就是提高表的增刪改查效率。

2、什么是分表和分區

2.1 分表

分表是將一個大表按照一定的規則分解成多張具有獨立存儲空間的實體表,我們可以稱為子表,每個表都對應三個文件,MYD數據文件,.MYI索引文件,.frm表結構文件。這些子表可以分布在同一塊磁盤上,也可以在不同的機器上。app讀寫的時候根據事先定義好的規則得到對應的子表名,然后去操作它。

2.2 分區

分區和分表相似,都是按照規則分解表。不同在于分表將大表分解為若干個獨立的實體表,而分區是將數據分段劃分在多個位置存放,可以是同一塊磁盤也可以在不同的機器。分區后,表面上還是一張表,但數據散列到多個位置了。app讀寫的時候操作的還是大表名字,db自動去組織分區的數據。
分區的主要目的是為了在特定的SQL操作中減少數據讀寫的總量以縮減響應時間。

2.3 mysql分表和分區有什么聯系呢?

1)、都能提高mysql的性能,在高并發狀態下都有一個良好的表現。
2)、分表和分區不矛盾,可以相互配合的,對于那些大訪問量,并且表數據比較多的表,我們可以采取分表和分區結合的方式,訪問量不大,但是表數據很多的表,我們可以采取分區的方式等。
3)、分表技術是比較麻煩的,需要手動去創建子表,app服務端讀寫時候需要計算子表名。采用merge好一些,但也要創建子表和配置子表間的union關系。
4)、表分區相對于分表,操作方便,不需要創建子表。

3、分表的幾種方式

3.1 mysql集群

它并不是分表,但起到了和分表相同的作用。集群可分擔數據庫的操作次數,將任務分擔到多臺數據庫上。集群可以讀寫分離,減少讀寫壓力。從而提升數據庫性能。

3.2 自定義規則分表

大表可以按照業務的規則來分解為多個子表。通常為以下幾種類型,也可自己定義規則。

Range(范圍)–這種模式允許將數據劃分不同范圍。例如可以將一個表通過年份劃分成若干個分區。
Hash(哈希)–這中模式允許通過對表的一個或多個列的Hash Key進行計算,最后通過這個Hash碼不同數值對應的數據區域進行分區。例如可以建立一個對表主鍵進行分區的表。
Key(鍵值)–上面Hash模式的一種延伸,這里的Hash Key是MySQL系統產生的。
List(預定義列表)–這種模式允許系統通過預定義的列表的值來對數據進行分割。
Composite(復合模式)以上模式的組合使用 

分表規則與分區規則一樣,在分區模塊詳細介紹。

下面以Range簡單介紹下如何分表(按照年份表)。

假設表結構有4個字段:自增id,姓名,存款金額,存款日期
把存款日期作為規則分表,分別創建幾個表
2011年:account_2011
2012年:account_2012
……
2015年:account_2015
app在讀寫的時候根據日期來查找對應的表名,需要手動來判定。

var getTableName = function() {
  var data = {
    name: 'tom',
    money: 2800.00,
    date: '201410013059'
  };
  var tablename = 'account_';
  var year = parseInt(data.date.substring(0, 4));
  if (year  2012) {
    tablename += 2011; // account_2011
  } else if (year  2013) {
    tablename += 2012; // account_2012
  } else if (year  2014) {
    tablename += 2013; // account_2013
  } else if (year  2015) {
    tablename += 2014; // account_2014
  } else {
    tablename += 2015; // account_2015
  }
  return tablename;
}

3.3 利用merge存儲引擎來實現分表

merge分表,分為主表和子表,主表類似于一個殼子,邏輯上封裝了子表,實際上數據都是存儲在子表中的。

我們可以通過主表插入和查詢數據,如果清楚分表規律,也可以直接操作子表。

子表2011年

CREATE TABLE `account_2011` (
`id` int(11) NOT NULL AUTO_INCREMENT ,
`name` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL ,
`money` float NOT NULL ,
`tradeDate` datetime NOT NULL
PRIMARY KEY (`id`)
)
ENGINE=MyISAM
DEFAULT CHARACTER SET=utf8 COLLATE=utf8_general_ci
AUTO_INCREMENT=2
CHECKSUM=0
ROW_FORMAT=DYNAMIC
DELAY_KEY_WRITE=0
;

子表2012年

CREATE TABLE `account_2012` (
`id` int(11) NOT NULL AUTO_INCREMENT ,
`name` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL ,
`money` float NOT NULL ,
`tradeDate` datetime NOT NULL
PRIMARY KEY (`id`)
)
ENGINE=MyISAM
DEFAULT CHARACTER SET=utf8 COLLATE=utf8_general_ci
AUTO_INCREMENT=2
CHECKSUM=0
ROW_FORMAT=DYNAMIC
DELAY_KEY_WRITE=0
;

主表,所有年

CREATE TABLE `account_all` (
`id` int(11) NOT NULL AUTO_INCREMENT ,
`name` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL ,
`money` float NOT NULL ,
`tradeDate` datetime NOT NULL
PRIMARY KEY (`id`)
)
ENGINE=MRG_MYISAM
DEFAULT CHARACTER SET=utf8 COLLATE=utf8_general_ci
UNION=(`account_2011`,`account_2012`)
INSERT_METHOD=LAST
ROW_FORMAT=DYNAMIC
;

創建主表的時候有個INSERT_METHOD,指明插入方式,取值可以是:0 不允許插入;FIRST 插入到UNION中的第一個表; LAST 插入到UNION中的最后一個表。

通過主表查詢的時候,相當于將所有子表合在一起查詢。這樣并不能體現分表的優勢,建議還是查詢子表。

4、分區的幾種方式

4.1 Range

create table range( 
  id int(11), 
  money int(11) unsigned not null, 
  date datetime 
  )partition by range(year(date))( 
  partition p2007 values less than (2008), 
  partition p2008 values less than (2009), 
  partition p2009 values less than (2010) 
  partition p2010 values less than maxvalue 
);

4.2 List

create table list( 
  a int(11), 
  b int(11) 
  )(partition by list (b) 
  partition p0 values in (1,3,5,7,9), 
  partition p1 values in (2,4,6,8,0) 
 );

4.3 Hash

create table hash( 
  a int(11), 
  b datetime 
  )partition by hash (YEAR(b) 
  partitions 4;

4.4 key

create table t_key( 
  a int(11), 
  b datetime) 
  partition by key (b) 
  partitions 4;

4.5 分區管理

4.5.1 新增分區

ALTER TABLE sale_data
ADD PARTITION (PARTITION p201010 VALUES LESS THAN (201011));

4.5.2 刪除分區

當刪除了一個分區,也同時刪除了該分區中所有的數據。

ALTER TABLE sale_data DROP PARTITION p201010;

4.5.3 合并分區

下面的SQL,將p201001 - p201009 合并為3個分區p2010Q1 - p2010Q3

ALTER TABLE sale_data
REORGANIZE PARTITION p201001,p201002,p201003,
p201004,p201005,p201006,
p201007,p201008,p201009 INTO
(
PARTITION p2010Q1 VALUES LESS THAN (201004),
PARTITION p2010Q2 VALUES LESS THAN (201007),
PARTITION p2010Q3 VALUES LESS THAN (201010)
);

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。

您可能感興趣的文章:
  • MySQL數據庫優化之分表分庫操作實例詳解
  • MySQL分庫分表總結講解
  • mysql分表分庫的應用場景和設計方式
  • mysql數據庫分表分庫的策略
  • MyBatis實現Mysql數據庫分庫分表操作和總結(推薦)
  • MYSQL數據庫數據拆分之分庫分表總結
  • Mysql數據庫分庫和分表方式(常用)
  • MYSQL性能優化分享(分庫分表)
  • MySQL分表和分區的具體實現方法
  • mysql分表和分區的區別淺析
  • MySql分表、分庫、分片和分區知識點介紹

標簽:臨沂 天津 常德 貴州 重慶 湖州 成都 內蒙古

巨人網絡通訊聲明:本文標題《什么是分表和分區 MySql數據庫分區和分表方法》,本文關鍵詞  什么,是,分表,和,分區,MySql,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《什么是分表和分區 MySql數據庫分區和分表方法》相關的同類信息!
  • 本頁收集關于什么是分表和分區 MySql數據庫分區和分表方法的相關信息資訊供網民參考!
  • 推薦文章
    欧美阿v视频在线大全_亚洲欧美中文日韩V在线观看_www性欧美日韩欧美91_亚洲欧美日韩久久精品
  • <rt id="w000q"><acronym id="w000q"></acronym></rt>
  • <abbr id="w000q"></abbr>
    <rt id="w000q"></rt>
    亚洲欧洲www| 北岛玲一区二区三区四区| 黑人玩弄人妻一区二区三区| 69av视频在线| 中文字幕欧美激情一区| 国产一区二区不卡老阿姨| 受虐m奴xxx在线观看| 精品久久五月天| 日韩av电影免费观看高清完整版| 日韩少妇一区二区| 欧美精品一卡二卡| 亚洲高清在线精品| 日韩精品人妻中文字幕有码| 91麻豆精品国产91久久久资源速度 | 国产一区二区久久| 妖精视频在线观看免费| 国产视频一区在线播放| 国产精品一级片在线观看| 日韩精品久久久久久久的张开腿让 | www青青草原| 亚洲另类在线制服丝袜| 97超碰免费在线观看| 欧美日韩精品一区二区三区 | 1024国产精品| 在线观看免费看片| 欧美久久久久久久久| 日韩精品一级二级| 欧美成人国产精品一区二区| 久久久亚洲午夜电影| 国产精品18久久久久久久久久久久 | 毛片av一区二区| 丰满的亚洲女人毛茸茸| 日本一区二区三区久久久久久久久不| 国产成人免费av在线| 色网站国产精品| 亚洲国产视频a| 国产熟妇搡bbbb搡bbbb| 精品国产污污免费网站入口| 国产伦精品一区二区三区视频青涩| 亚洲综合久久av一区二区三区| 国产精品福利av| 可以看的av网址| 欧美不卡123| 国产成人综合在线播放| 在线视频综合导航| 日韩激情在线观看| 网爆门在线观看| 亚洲精品视频一区二区| 波多野结衣影院| 国产拍欧美日韩视频二区| 91在线无精精品入口| 8v天堂国产在线一区二区| 九九国产精品视频| 色久综合一二码| 奇米精品一区二区三区在线观看| 亚洲aaa视频| 亚洲一区二区三区四区五区中文| 97超碰在线免费观看| 国产精品久久久久久久久晋中| 69久久精品无码一区二区| 精品久久五月天| 91免费国产在线| 欧美成人a视频| 91女厕偷拍女厕偷拍高清| 精品久久久久久久久久久院品网| 高清视频一区二区| 欧美一区午夜精品| 从欧美一区二区三区| 91精品国产91综合久久蜜臀| 懂色av一区二区三区免费看| 91精品久久久久久久91蜜桃| 成人午夜私人影院| 日韩欧美久久一区| 99精品欧美一区| 久久色中文字幕| 精品国产aⅴ一区二区三区东京热 久久久久99人妻一区二区三区 | 亚洲午夜私人影院| 人妻互换一区二区激情偷拍| 亚洲一区二区三区视频在线播放| 日本免费www| 丝袜美腿亚洲色图| 2021亚洲天堂| 精品亚洲成av人在线观看| 欧美日韩亚洲另类| 国产91丝袜在线播放0| 欧美刺激脚交jootjob| 日本一区二区三区在线免费观看| 久久久久久久久久久久电影 | 91网站在线观看视频| 久久婷婷综合激情| 久久精品女同亚洲女同13| 日韩毛片一二三区| 能直接看的av| 青青草国产成人av片免费| 欧美视频一区二| 成人高清视频在线观看| 久久亚洲综合色| 亚洲调教欧美在线| 亚洲综合视频在线| 一道本成人在线| 国产成人啪免费观看软件| 精品蜜桃在线看| 亚洲色图欧美日韩| 一区二区三区欧美在线观看| 国产av无码专区亚洲av毛网站| 国产综合色在线| 日韩一区二区高清| 国产亚洲精品成人a| 亚洲免费在线观看视频| h色网站在线观看| 国产老妇另类xxxxx| 久久这里只有精品6| theav精尽人亡av| 午夜电影网亚洲视频| 欧美日韩午夜在线视频| 91蜜桃在线观看| 亚洲精品国产无套在线观| 色综合久久天天| 成人一区二区三区视频| 日本一区二区三区在线不卡| 懂色av蜜臀av粉嫩av永久| 国产在线精品不卡| 久久久777精品电影网影网| 谁有免费的黄色网址| 久久精品国产成人一区二区三区| 日韩一级高清毛片| v8888av| 麻豆精品视频在线| 精品国产123| 中字幕一区二区三区乱码| 久久99精品国产.久久久久久| 精品久久久久久最新网址| 免费在线观看a视频| 韩国女主播成人在线观看| 久久久久久99精品| 特级西西人体高清大胆| 国产成人在线观看免费网站| 中文字幕av免费专区久久| 综合五月激情网| aaa国产一区| 亚洲自拍偷拍欧美| 7777精品伊人久久久大香线蕉 | 综合婷婷亚洲小说| 在线精品视频一区二区| wwwxxx色| 日韩精品一区第一页| 精品国产伦一区二区三区观看方式| 免费网站在线高清观看| 国产成人精品一区二区三区网站观看 | 欧美日韩免费在线视频| 69亚洲乱人伦| 欧美va天堂va视频va在线| 天天躁夜夜躁狠狠是什么心态| 国产做a爰片久久毛片| 中文字幕在线不卡一区| 欧美视频一区二| 91精品国产自产| 激情小说欧美图片| 国产精品国产三级国产aⅴ中文| 在线欧美一区二区| 黄色激情在线观看| 精品中文字幕一区二区| 国产精品久久久久7777按摩| 欧美三级蜜桃2在线观看| 美国黄色一级毛片| 国产成人亚洲综合a∨猫咪| 一区二区在线观看免费| 日韩欧美亚洲一区二区| 亚洲aaa视频| 久久久久久久久久久久国产精品| 麻豆精品在线播放| 亚洲欧美自拍偷拍| 91精品蜜臀在线一区尤物| 美国一级黄色录像| 91浏览器打开| 麻豆成人av在线| 亚洲天堂免费看| 日韩一区二区免费在线电影| 国产喷水在线观看| 四虎成人免费视频| 精品一区二区av| 亚洲线精品一区二区三区八戒| 精品久久国产老人久久综合| a级片在线观看免费| av网站免费在线播放| 成人av网址在线| 蜜桃av一区二区在线观看| 成人免费一区二区三区在线观看| 91精品久久久久久久91蜜桃| 欧美激情图片小说| aaaaa一级片| 97久久超碰精品国产| 久久99久久久久| 洋洋av久久久久久久一区| 久久嫩草精品久久久精品| 欧美视频一区在线| 免费在线观看a级片| 国产福利在线观看视频| 99在线精品观看| 国内精品不卡在线|