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

主頁 > 知識庫 > mysql聚簇索引的頁分裂原理實例分析

mysql聚簇索引的頁分裂原理實例分析

熱門標簽:400電話可以免費申請嗎 騰訊地圖標注提升 福建外呼系統定制化 怎么在地圖標注位置生成圖片 銅陵防封電銷卡 電銷卡外呼系統供應商 真人語音電話機器人 美國反騷擾電話機器人 悟空科技電話機器人

本文實例講述了mysql聚簇索引的頁分裂。分享給大家供大家參考,具體如下:

在MySQL中,MyISAM采用的是非聚簇索引的,InnoDB存儲引擎是采用聚簇索引的。

聚簇結構的特點:

  • 根據主鍵查詢條目時,不用回行(數據就在主鍵節點下)
  • 如果碰到不規則數據插入時,造成頻繁的頁分裂

為什么會產生頁分裂?

這是因為聚簇索引采用的是平衡二叉樹算法,而且每個節點都保存了該主鍵所對應行的數據,假設插入數據的主鍵是自增長的,那么根據二叉樹算法會很快的把該數據添加到某個節點下,而其他的節點不用動;但是如果插入的是不規則的數據,那么每次插入都會改變二叉樹之前的數據狀態。從而導致了頁分裂。

測試:

創建2張表

create table t8(
id int primary key,
c1 varchar(500),
c2 varchar(500),
c3 varchar(500),
c4 varchar(500),
c5 varchar(500),
c6 varchar(500)
) engine innodb charset utf8;
create table t9(
id int primary key,
c1 varchar(500),
c2 varchar(500),
c3 varchar(500),
c4 varchar(500),
c5 varchar(500),
c6 varchar(500)
) engine innodb charset utf8;

寫一個php腳本,用于插入1W條無規則的主鍵數據和1W條規則的主鍵數據,來看看區別。

?php
set_time_limit(0);
$conn = mysql_connect('localhost','root','1234');
mysql_query('use test;');
//自增長主鍵
$str = str_repeat('a', 500);
$startTime = microtime(true);
for($i=1;$i=10000;$i++){
 mysql_query("insert into t8 values($i,'$str','$str','$str','$str','$str','$str')");
}
$endTime = microtime(true);
echo $endTime-$startTime.'br/>';
//無序的主鍵
$arr = range(1, 10000);
shuffle($arr);
$startTime = microtime(true);
foreach($arr as $i){
 mysql_query("insert into t9 values($i,'$str','$str','$str','$str','$str','$str')");
}
$endTime = microtime(true);
echo $endTime-$startTime.'br/>';

測試結果圖

1W條規則的數據:998秒 = 16分鐘
1W條不規則的數據:1939秒 = 32分鐘

結論:

聚簇索引的主鍵值,應盡量是連續增長的值,而不是要是隨機值, (不要用隨機字符串或UUID),否則會造成大量的頁分裂與頁移動。在使用InnoDB的時候最好定義成:

id int unsigned primary key auto_increment

更多關于MySQL相關內容感興趣的讀者可查看本站專題:《MySQL索引操作技巧匯總》、《MySQL常用函數大匯總》、《MySQL日志操作技巧大全》、《MySQL事務操作技巧匯總》、《MySQL存儲過程技巧大全》及《MySQL數據庫鎖相關技巧匯總》

希望本文所述對大家MySQL數據庫計有所幫助。

您可能感興趣的文章:
  • MySQL學習教程之聚簇索引
  • 詳解MySQL 聚簇索引與非聚簇索引
  • 一看就懂的MySQL的聚簇索引及聚簇索引是如何長高的

標簽:湖北 烏海 湖南 聊城 武威 云浮 臨汾 白銀

巨人網絡通訊聲明:本文標題《mysql聚簇索引的頁分裂原理實例分析》,本文關鍵詞  mysql,聚簇,索引,的,頁,分裂,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《mysql聚簇索引的頁分裂原理實例分析》相關的同類信息!
  • 本頁收集關于mysql聚簇索引的頁分裂原理實例分析的相關信息資訊供網民參考!
  • 推薦文章
    主站蜘蛛池模板: 谷城县| 华宁县| 江口县| 封开县| 海原县| 二连浩特市| 女性| 珲春市| 观塘区| 三明市| 舟山市| 繁峙县| 响水县| 澎湖县| 通道| 绍兴县| 讷河市| 天等县| 镇巴县| 贵德县| 邵阳市| 义乌市| 邵阳市| 涿州市| 山丹县| 布尔津县| 孙吴县| 依兰县| 来宾市| 叶城县| 东台市| 八宿县| 砚山县| 静海县| 浦北县| 太仓市| 拜城县| 泰安市| 信阳市| 怀化市| 安乡县|