国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁(yè) > 數(shù)據(jù)庫(kù) > MySQL > 正文

mysql支撐分區(qū)嗎

2024-07-24 12:34:28
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友
  mysql支持分區(qū)。
 
  mysql分區(qū)概述
  MySQL在5.1時(shí)添加了對(duì)水平分區(qū)的支持。分區(qū)是將一個(gè)表或索引分解成多個(gè)更小,更可管理的部分。每個(gè)區(qū)都是獨(dú)立的,可以獨(dú)立處理,也可以作為一個(gè)更大對(duì)象的一部分進(jìn)行處理。這個(gè)是MySQL支持的功能,業(yè)務(wù)代碼無(wú)需改動(dòng)。要知道MySQL是面向OLTP的數(shù)據(jù),它不像TIDB等其他DB。那么對(duì)于分區(qū)的使用應(yīng)該非常小心,如果不清楚如何使用分區(qū)可能會(huì)對(duì)性能產(chǎn)生負(fù)面的影響。
 
  MySQL數(shù)據(jù)庫(kù)的分區(qū)是局部分區(qū)索引,一個(gè)分區(qū)中既存了數(shù)據(jù),又放了索引。也就是說(shuō),每個(gè)區(qū)的聚集索引和非聚集索引都放在各自區(qū)的(不同的物理文件)。目前MySQL數(shù)據(jù)庫(kù)還不支持全局分區(qū)。
 
  無(wú)論哪種類(lèi)型的分區(qū),如果表中存在主鍵或唯一索引時(shí),分區(qū)列必須是唯一索引的一個(gè)組成部分。
 
  分區(qū)表的限制因素
 
  (1)、一個(gè)表最多只能有1024個(gè)分區(qū)。
 
  (2)、 MySQL5.1中,分區(qū)表達(dá)式必須是整數(shù),或者返回整數(shù)的表達(dá)式。在MySQL5.5中提供了非整數(shù)表達(dá)式分區(qū)的支持。
 
  (3)、如果分區(qū)字段中有主鍵或者唯一索引的列,那么多有主鍵列和唯一索引列都必須包含進(jìn)來(lái)。即:分區(qū)字段要么不包含主鍵或者索引列,要么包含全部主鍵和索引列。
 
  (4)、分區(qū)表中無(wú)法使用外鍵約束。
 
  (5)、MySQL的分區(qū)適用于一個(gè)表的所有數(shù)據(jù)和索引,不能只對(duì)表數(shù)據(jù)分區(qū)而不對(duì)索引分區(qū),也不能只對(duì)索引分區(qū)而不對(duì)表分區(qū),也不能只對(duì)表的一部分?jǐn)?shù)據(jù)分區(qū)。
 
  分區(qū)類(lèi)型
  目前MySQL支持一下幾種類(lèi)型的分區(qū),RANGE分區(qū),LIST分區(qū),HASH分區(qū),KEY分區(qū)。如果表存在主鍵或者唯一索引時(shí),分區(qū)列必須是唯一索引的一個(gè)組成部分。實(shí)戰(zhàn)十有八九都是用RANGE分區(qū)。
  
  以下3種不是太常用,就一筆帶過(guò)了。
 
  LIST分區(qū)
  LIST分區(qū)和RANGE分區(qū)很相似,只是分區(qū)列的值是離散的,不是連續(xù)的。LIST分區(qū)使用VALUES IN,因?yàn)槊總€(gè)分區(qū)的值是離散的,因此只能定義值。
 
  HASH分區(qū)
  說(shuō)到哈希,那么目的很明顯了,將數(shù)據(jù)均勻的分布到預(yù)先定義的各個(gè)分區(qū)中,保證每個(gè)分區(qū)的數(shù)量大致相同。
 
  KEY分區(qū)
  KEY分區(qū)和HASH分區(qū)相似,不同之處在于HASH分區(qū)使用用戶(hù)定義的函數(shù)進(jìn)行分區(qū),KEY分區(qū)使用數(shù)據(jù)庫(kù)提供的函數(shù)進(jìn)行分區(qū)。
 
  分區(qū)和性能
  一項(xiàng)技術(shù),不是用了就一定帶來(lái)益處。比如顯式鎖功能比內(nèi)置鎖強(qiáng)大,你沒(méi)玩好可能導(dǎo)致很不好的情況。分區(qū)也是一樣,不是啟動(dòng)了分區(qū)數(shù)據(jù)庫(kù)就會(huì)運(yùn)行的更快,分區(qū)可能會(huì)給某些sql語(yǔ)句性能提高,但是分區(qū)主要用于數(shù)據(jù)庫(kù)高可用性的管理。
 
  數(shù)據(jù)庫(kù)應(yīng)用分為2類(lèi),一類(lèi)是OLTP(在線(xiàn)事務(wù)處理),一類(lèi)是OLAP(在線(xiàn)分析處理)。對(duì)于OLAP應(yīng)用分區(qū)的確可以很好的提高查詢(xún)性能,因?yàn)橐话惴治龆夹枰祷卮罅康臄?shù)據(jù),如果按時(shí)間分區(qū),比如一個(gè)月用戶(hù)行為等數(shù)據(jù),則只需掃描響應(yīng)的分區(qū)即可。在OLTP應(yīng)用中,分區(qū)更加要小心,通常不會(huì)獲取一張大表的10%的數(shù)據(jù),大部分是通過(guò)索引返回幾條數(shù)據(jù)即可。
 
  比如一張表1000w數(shù)據(jù)量,如果一句select語(yǔ)句走輔助索引,但是沒(méi)有走分區(qū)鍵。那么結(jié)果會(huì)很尷尬。如果1000w的B+樹(shù)的高度是3,現(xiàn)在有10個(gè)分區(qū)。那么不是要(3+3)*10次的邏輯IO?(3次聚集索引,3次輔助索引,10個(gè)分區(qū))。所以在OLTP應(yīng)用中請(qǐng)小心使用分區(qū)表。

(編輯:武林網(wǎng))

發(fā)表評(píng)論 共有條評(píng)論
用戶(hù)名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 金沙县| 灵山县| 青河县| 精河县| 太保市| 新干县| 博白县| 东乌| 道孚县| 会理县| 江川县| 广河县| 桂东县| 武安市| 琼结县| 康保县| 家居| 宣威市| 琼中| 静安区| 吉安市| 苍山县| 黄石市| 美姑县| 广饶县| 永州市| 武山县| 建瓯市| 九台市| 新源县| 林州市| 枣阳市| 巴中市| 德惠市| 阳曲县| 威远县| 尼勒克县| 河北省| 锡林浩特市| 泽普县| 北宁市|