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

MySQL 存儲(chǔ)引擎  MyISAM詳解(最新推薦)

 更新時(shí)間:2025年05月29日 15:48:52   作者:JhonKI  
使用 MyISAM 存儲(chǔ)引擎的表占用空間很小,但是由于使用表級(jí)鎖定,所以限制了讀/寫(xiě)操作的性能,通常用于中小型的Web應(yīng)用和數(shù)據(jù)倉(cāng)庫(kù)配置中的只讀或主要是讀的場(chǎng)景,這篇文章主要介紹了MySQL 存儲(chǔ)引擎  MyISAM詳解,需要的朋友可以參考下

MySQL 5.5 之前默認(rèn)的存儲(chǔ)引擎

使用 MyISAM 存儲(chǔ)引擎的表占用空間很小,但是由于使用表級(jí)鎖定,所以限制了讀/寫(xiě)操作的性能,通常用于中小型的Web應(yīng)用和數(shù)據(jù)倉(cāng)庫(kù)配置中的只讀或主要是讀的場(chǎng)景。

???‍??一、MyISAM 存儲(chǔ)引擎的特性

MyISAMInnoDB 的主要區(qū)別

  • 外鍵
  • 事務(wù)
  • Hash 索引
  • 鎖粒度

???‍??二、MyISAM 的主要優(yōu)勢(shì)

  • MyISAM 表的最大行數(shù)為(232)^2及(1.844E+19)行;
  • 每個(gè)MyISAM表最多可以創(chuàng)建64個(gè)索引,每個(gè)索引最多可以包含16個(gè)列;
  • 支持并發(fā)插入;
  • 通過(guò) CREATE table 創(chuàng)建表時(shí),指定 DATA DIRECTORY=PATHINDEXDIRECTORY=PATH 將數(shù)據(jù)文件和索引文件放在不同設(shè)備的不同目錄中,從而提高訪問(wèn)速度:
  • BLOBTEXT 數(shù)據(jù)類型的列也可以被索引;
  • 在索引列中允許使用NULL值;
  • 如果 mysqld 啟動(dòng)時(shí)設(shè)置了 myisam_recover_options 系統(tǒng)變量,那么 MyISAM 表在打開(kāi)時(shí)進(jìn)行會(huì)自查,如果上一次表沒(méi)有正確關(guān)閉將會(huì)修復(fù);
  • 表中 VARCHARCHAR 列的長(zhǎng)度總和最多可達(dá)64KB。
  • UNIOUE 約束的長(zhǎng)度不受限制

???‍??

在MySOL8.0中 InnoDB 是默認(rèn)引擎,所以在創(chuàng)建表時(shí)需要指定 ENGINE=MyISAM

創(chuàng)建 MyISAM 表會(huì)根據(jù)表名生成三個(gè)不同后綴名文件,分別是以.MYD(MYData)為后綴的數(shù)據(jù)文件,以.MYI(MYIndex)為后綴的索引文件,以.sdi為后綴的表信息描述文件(JSON格式)
在8.0以前的版本中表信息描述文件是以.frm為后綴的二進(jìn)制文件

???‍??四、MyISAM 表存儲(chǔ)格式

  • MyISAM 表支持三種不同的存儲(chǔ)格式
  • 其中 FIXED 靜態(tài)(固定)格式和 DYNAMIC 動(dòng)態(tài)格式,根據(jù)使用的列類型自動(dòng)選擇,
  • 第三種是 壓縮格式,只能使用 myisampack 實(shí)用程序生成并且是只讀格式
  • 當(dāng)表中沒(méi)有 BLOBTEXT 數(shù)據(jù)類型的列,在使用 CREATE TABLE或 ALTER TABLE 語(yǔ)句創(chuàng)建或修改表時(shí),可以結(jié)合 ROW_FORMAT表選項(xiàng)將表格式設(shè)置為FIXED或DYNAMIC。
  • 使用 myisamchk 實(shí)用工具對(duì)已壓縮的MyISAM進(jìn)行解壓操作,myisamchk --unpack。

4.1 靜態(tài)格式(Fixed-Length)表

  • 靜態(tài)格式MyISAM 表的默認(rèn)格式,當(dāng)表不包含可變長(zhǎng)度的列( VARCHARVARBINARY、BLOBTEXT)時(shí)使用,每行都使用固定數(shù)量的字節(jié)存儲(chǔ)。
  • MyISAM 的三種存儲(chǔ)格式中,靜態(tài)格式是最簡(jiǎn)單和最安全的(最不容易損壞),同時(shí)也是最快的磁盤(pán)格式,因?yàn)槊啃械拈L(zhǎng)度固定,根據(jù)索引中的行號(hào)乘以行長(zhǎng)度就可以計(jì)算出行位置,此外,讀取固定數(shù)量的行也非常的高效。
  • 靜態(tài)格式表具有以下特點(diǎn):
    • CHARVARCHAR 類型的列用空格填充到指定的列寬;
    • BINARYVARBINARY 類型的列用 0x00 字節(jié)填充到列寬每個(gè)允許為NULL的列,都用一個(gè) 1 BIT 的額外空間記錄當(dāng)前列是否為空;。
    • 速度非??欤乙子诰彺?。
    • 崩潰后易于重建,因?yàn)樾卸嘉挥诠潭ㄎ恢?,?/li>
    • 通常需要比動(dòng)態(tài)格式表更多的磁盤(pán)空間;。

4.2 動(dòng)態(tài)格式表

當(dāng)表中包含可變長(zhǎng)度列(VARCHAR、VARBINARY、BLOBTEXT )或者在創(chuàng)建表時(shí)使用 ROW_FORMAT=DYNAMIC選項(xiàng),則表格式為動(dòng)態(tài)存儲(chǔ)格式

動(dòng)態(tài)格式表具有以下特點(diǎn):

  • 列類型是字符串,且長(zhǎng)度大于等于4,長(zhǎng)度都是動(dòng)態(tài)的:
  • 每一行都有一個(gè)標(biāo)志來(lái)指示行有多長(zhǎng),當(dāng)因更新操作而變得更長(zhǎng)時(shí),數(shù)據(jù)可能存儲(chǔ)在不連續(xù)的空間,可以使用 OPTIMIZE TABLE table_name 語(yǔ)句或 myisamchk -r 對(duì)表進(jìn)行碎片整理;
  • 每個(gè)允許為NULL的列,都用一個(gè) 1 BIT 的額外空間記錄當(dāng)前列是否為空;
  • 每行前面都有一個(gè) bitmap(位圖),用來(lái)記錄包含空字符串或0的列,如果字符串類型的列長(zhǎng)度為零,或者數(shù)字列的值0,則在位圖中標(biāo)記并且不會(huì)保存到磁盤(pán);
  • 通常磁盤(pán)空間占用比固定長(zhǎng)度表要少很多;。
  • 每行都單獨(dú)壓縮,每列都可能用單獨(dú)的方式進(jìn)行壓縮。

常用的壓縮方式:

  • 如果數(shù)值列的值為0,無(wú)論原始數(shù)據(jù)類型是哪種都用一個(gè) BIT 類型存儲(chǔ)。
  • 如果整數(shù)列中的值范圍較小,則盡可能使小的類型存儲(chǔ)該列,比如:列中的值范圍在 -128 到 127 之間,即使原始類型為 bigint(8bytes),也使用 TINYINT(1 byte) 類型存儲(chǔ)
  • 如果列中只有一小組可能出現(xiàn)的值,則數(shù)據(jù)類型轉(zhuǎn)換為 ENUM;

4.3 壓縮存儲(chǔ)格式

  • 壓縮存儲(chǔ)格式是使用 myisampack 工具生成的只讀格式數(shù)據(jù)表,壓縮表可以用 myisamchk 解壓縮。
  • 壓縮格式表具有以下特點(diǎn):
    • 壓縮表占用很少的磁盤(pán)空間,最大限度地減少了磁盤(pán)使用:
    • 可以用于固定長(zhǎng)度或動(dòng)態(tài)長(zhǎng)度
    • 行壓縮表是只讀的,因此不能在表中更新或添加數(shù)據(jù):

??總結(jié)

本篇博文對(duì) 【MySQL】存儲(chǔ)引擎 - MyISAM詳解 做了一個(gè)較為詳細(xì)的介紹,不知道對(duì)你有沒(méi)有幫助呢

到此這篇關(guān)于MySQL 存儲(chǔ)引擎 MyISAM詳解(最新推薦)的文章就介紹到這了,更多相關(guān)MySQL 存儲(chǔ)引擎 MyISAM內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 詳解MySQL如何交換兩列值數(shù)據(jù)

    詳解MySQL如何交換兩列值數(shù)據(jù)

    最近遇到了需要將表里的兩列值進(jìn)行互換,原因是存庫(kù)時(shí)值存放反了,在編碼語(yǔ)言中,我們一般可以通過(guò)定義一個(gè)臨時(shí)變量c,將b賦值給c,a賦值給b,c賦值給a就能實(shí)現(xiàn)a和b的值互換,那么,在mysql中,非儲(chǔ)存過(guò)程的sql語(yǔ)句,沒(méi)有定義變量的過(guò)程,如何實(shí)現(xiàn)呢,接下來(lái)由小編給大家介紹一下
    2024-01-01
  • mysql存儲(chǔ)過(guò)程游標(biāo)之loop循環(huán)解讀

    mysql存儲(chǔ)過(guò)程游標(biāo)之loop循環(huán)解讀

    這篇文章主要介紹了mysql存儲(chǔ)過(guò)程游標(biāo)之loop循環(huán)解讀,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-07-07
  • mysql 5.7.17 zip安裝配置教程 mysql啟動(dòng)失敗的解決方法

    mysql 5.7.17 zip安裝配置教程 mysql啟動(dòng)失敗的解決方法

    這篇文章主要為大家詳細(xì)介紹了mysql 5.7.17 zip安裝配置教程,以及mysql啟動(dòng)失敗的解決方法,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2019-06-06
  • mysql binlog日志自動(dòng)清理及手動(dòng)刪除

    mysql binlog日志自動(dòng)清理及手動(dòng)刪除

    本文主要介紹了mysql binlog日志自動(dòng)清理及手動(dòng)刪除,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2023-01-01
  • 遠(yuǎn)程連接mysql數(shù)據(jù)庫(kù)注意事項(xiàng)記錄(遠(yuǎn)程連接慢skip-name-resolve)

    遠(yuǎn)程連接mysql數(shù)據(jù)庫(kù)注意事項(xiàng)記錄(遠(yuǎn)程連接慢skip-name-resolve)

    有時(shí)候我們需要遠(yuǎn)程連接mysql數(shù)據(jù)庫(kù),就需要注意下面的問(wèn)題,方便大家解決,腳本之家小編特為大家準(zhǔn)備了一些資料
    2012-07-07
  • mysql中如何對(duì)列求和

    mysql中如何對(duì)列求和

    這篇文章主要介紹了mysql中如何對(duì)列求和問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-05-05
  • mysql查看鎖表及殺進(jìn)程問(wèn)題

    mysql查看鎖表及殺進(jìn)程問(wèn)題

    這篇文章主要介紹了mysql查看鎖表及殺進(jìn)程問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-07-07
  • MySql獲取當(dāng)前時(shí)間并轉(zhuǎn)換成字符串的實(shí)現(xiàn)

    MySql獲取當(dāng)前時(shí)間并轉(zhuǎn)換成字符串的實(shí)現(xiàn)

    本文主要介紹了MySql獲取當(dāng)前時(shí)間并轉(zhuǎn)換成字符串的實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2022-07-07
  • mysql 數(shù)據(jù)庫(kù)鏈接狀態(tài)確認(rèn)實(shí)驗(yàn)(推薦)

    mysql 數(shù)據(jù)庫(kù)鏈接狀態(tài)確認(rèn)實(shí)驗(yàn)(推薦)

    這篇文章主要介紹了mysql 數(shù)據(jù)庫(kù)鏈接狀態(tài)確認(rèn)實(shí)驗(yàn),通過(guò)本文我選擇 了三種方案給大家詳細(xì)講解,結(jié)合實(shí)例代碼給大家介紹的非常詳細(xì),需要的朋友可以參考下
    2022-09-09
  • mysql 登錄報(bào)錯(cuò):ERROR 1045 (28000):Access denied for user ‘root‘@‘localhost‘ (using password: Yes)

    mysql 登錄報(bào)錯(cuò):ERROR 1045 (28000):Access den

    本文主要介紹了mysql 登錄報(bào)錯(cuò):ERROR 1045 (28000):Access denied for user ‘root‘@‘localhost‘ (using password: Yes)的問(wèn)題解決,具有一定的參考價(jià)值,感興趣的可以了解一下
    2025-03-03

最新評(píng)論