欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

mysql聚簇索引的頁(yè)分裂原理實(shí)例分析

 更新時(shí)間:2019年07月15日 11:54:09   作者:webbc  
這篇文章主要介紹了mysql聚簇索引的頁(yè)分裂原理,結(jié)合實(shí)例形式分析了mysql聚簇索引的頁(yè)分裂原理與操作注意事項(xiàng),需要的朋友可以參考下

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

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

聚簇結(jié)構(gòu)的特點(diǎn):

  • 根據(jù)主鍵查詢條目時(shí),不用回行(數(shù)據(jù)就在主鍵節(jié)點(diǎn)下)
  • 如果碰到不規(guī)則數(shù)據(jù)插入時(shí),造成頻繁的頁(yè)分裂

為什么會(huì)產(chǎn)生頁(yè)分裂?

這是因?yàn)榫鄞厮饕捎玫氖瞧胶舛鏄?shù)算法,而且每個(gè)節(jié)點(diǎn)都保存了該主鍵所對(duì)應(yīng)行的數(shù)據(jù),假設(shè)插入數(shù)據(jù)的主鍵是自增長(zhǎng)的,那么根據(jù)二叉樹(shù)算法會(huì)很快的把該數(shù)據(jù)添加到某個(gè)節(jié)點(diǎn)下,而其他的節(jié)點(diǎn)不用動(dòng);但是如果插入的是不規(guī)則的數(shù)據(jù),那么每次插入都會(huì)改變二叉樹(shù)之前的數(shù)據(jù)狀態(tài)。從而導(dǎo)致了頁(yè)分裂。

測(cè)試:

創(chuàng)建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;

寫一個(gè)php腳本,用于插入1W條無(wú)規(guī)則的主鍵數(shù)據(jù)和1W條規(guī)則的主鍵數(shù)據(jù),來(lái)看看區(qū)別。

<?php
set_time_limit(0);
$conn = mysql_connect('localhost','root','1234');
mysql_query('use test;');
//自增長(zhǎng)主鍵
$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/>';
//無(wú)序的主鍵
$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/>';

測(cè)試結(jié)果圖

1W條規(guī)則的數(shù)據(jù):998秒 = 16分鐘
1W條不規(guī)則的數(shù)據(jù):1939秒 = 32分鐘

結(jié)論:

聚簇索引的主鍵值,應(yīng)盡量是連續(xù)增長(zhǎng)的值,而不是要是隨機(jī)值, (不要用隨機(jī)字符串或UUID),否則會(huì)造成大量的頁(yè)分裂與頁(yè)移動(dòng)。在使用InnoDB的時(shí)候最好定義成:

id int unsigned primary key auto_increment

更多關(guān)于MySQL相關(guān)內(nèi)容感興趣的讀者可查看本站專題:《MySQL索引操作技巧匯總》、《MySQL常用函數(shù)大匯總》、《MySQL日志操作技巧大全》、《MySQL事務(wù)操作技巧匯總》、《MySQL存儲(chǔ)過(guò)程技巧大全》及《MySQL數(shù)據(jù)庫(kù)鎖相關(guān)技巧匯總

希望本文所述對(duì)大家MySQL數(shù)據(jù)庫(kù)計(jì)有所幫助。

相關(guān)文章

  • mysql datetime查詢異常問(wèn)題解決

    mysql datetime查詢異常問(wèn)題解決

    這篇文章主要介紹了mysql datetime查詢異常問(wèn)題解決的相關(guān)資料,這里對(duì)異常進(jìn)行了詳細(xì)的介紹和該如何解決,需要的朋友可以參考下
    2016-11-11
  • mysql 優(yōu)化日記

    mysql 優(yōu)化日記

    mysql 優(yōu)化日記 使用mysql的朋友可以參考下,大家知道如果mysql優(yōu)化與沒(méi)優(yōu)化性能會(huì)相差不少呢。
    2009-07-07
  • MySql連接數(shù)據(jù)庫(kù)常用參數(shù)及代碼解讀

    MySql連接數(shù)據(jù)庫(kù)常用參數(shù)及代碼解讀

    這篇文章主要介紹了MySql連接數(shù)據(jù)庫(kù)常用參數(shù)及代碼解讀,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-02-02
  • mysql字符串格式化方式

    mysql字符串格式化方式

    這篇文章主要介紹了mysql字符串格式化方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-08-08
  • 數(shù)據(jù)庫(kù)中的SELECT語(yǔ)句邏輯執(zhí)行順序分析

    數(shù)據(jù)庫(kù)中的SELECT語(yǔ)句邏輯執(zhí)行順序分析

    這篇文章主要介紹了數(shù)據(jù)庫(kù)中的SELECT語(yǔ)句邏輯執(zhí)行順序分析,并列出了一些例子,需要的朋友可以參考下
    2014-07-07
  • SQL語(yǔ)句解析執(zhí)行的過(guò)程及原理

    SQL語(yǔ)句解析執(zhí)行的過(guò)程及原理

    這篇文章主要介紹了SQL語(yǔ)句解析執(zhí)行的過(guò)程及原理,文章主要通過(guò)獲得SqlSession對(duì)象后就能執(zhí)行各種CRUD方法展開(kāi)全文內(nèi)容需要的小伙伴可以參考一下,希望對(duì)你有所幫助
    2022-03-03
  • MYSQL函數(shù)的使用梳理

    MYSQL函數(shù)的使用梳理

    本篇文章講解是是MySQL的函數(shù)方法,涵蓋所有的MySQL常見(jiàn)的方法,MySQL函數(shù),是一種控制流程函數(shù),屬于數(shù)據(jù)庫(kù)用語(yǔ)言,以下列出了這些函數(shù)的說(shuō)明
    2022-05-05
  • Mysql如何查看表及字段信息

    Mysql如何查看表及字段信息

    這篇文章主要介紹了Mysql如何查看表及字段信息,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-01-01
  • 重置MySQL中表中自增列的初始值的實(shí)現(xiàn)方法

    重置MySQL中表中自增列的初始值的實(shí)現(xiàn)方法

    這篇文章主要介紹了重置MySQL中表中自增列的初始值的實(shí)現(xiàn)方法的相關(guān)資料,需要的朋友可以參考下
    2017-03-03
  • window10系統(tǒng)下mysql5.7安裝審計(jì)插件(親測(cè)有用)

    window10系統(tǒng)下mysql5.7安裝審計(jì)插件(親測(cè)有用)

    mysql有沒(méi)oracle這樣的審計(jì)功能,突然想在mysql做審計(jì)怎么辦,下面帶大家從零開(kāi)始給mysql安裝審計(jì)插件,親測(cè)絕對(duì)可用哦,需要的朋友可以參考下
    2022-09-09

最新評(píng)論