最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

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

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

MySQL 5.5 之前默認的存儲引擎

使用 MyISAM 存儲引擎的表占用空間很小,但是由于使用表級鎖定,所以限制了讀/寫操作的性能,通常用于中小型的Web應用和數據倉庫配置中的只讀或主要是讀的場景。

???‍??一、MyISAM 存儲引擎的特性

MyISAMInnoDB 的主要區(qū)別

  • 外鍵
  • 事務
  • Hash 索引
  • 鎖粒度

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

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

???‍??

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

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

???‍??四、MyISAM 表存儲格式

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

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

  • 靜態(tài)格式MyISAM 表的默認格式,當表不包含可變長度的列( VARCHAR、VARBINARY、BLOBTEXT)時使用,每行都使用固定數量的字節(jié)存儲。
  • MyISAM 的三種存儲格式中,靜態(tài)格式是最簡單和最安全的(最不容易損壞),同時也是最快的磁盤格式,因為每行的長度固定,根據索引中的行號乘以行長度就可以計算出行位置,此外,讀取固定數量的行也非常的高效。
  • 靜態(tài)格式表具有以下特點:
    • CHARVARCHAR 類型的列用空格填充到指定的列寬;
    • BINARYVARBINARY 類型的列用 0x00 字節(jié)填充到列寬每個允許為NULL的列,都用一個 1 BIT 的額外空間記錄當前列是否為空;。
    • 速度非??欤乙子诰彺?。
    • 崩潰后易于重建,因為行都位于固定位置,。
    • 通常需要比動態(tài)格式表更多的磁盤空間;。

4.2 動態(tài)格式表

當表中包含可變長度列(VARCHAR、VARBINARYBLOBTEXT )或者在創(chuàng)建表時使用 ROW_FORMAT=DYNAMIC選項,則表格式為動態(tài)存儲格式

動態(tài)格式表具有以下特點:

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

常用的壓縮方式:

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

4.3 壓縮存儲格式

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

??總結

本篇博文對 【MySQL】存儲引擎 - MyISAM詳解 做了一個較為詳細的介紹,不知道對你有沒有幫助呢

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

相關文章

  • 淺析Mysql Join語法以及性能優(yōu)化

    淺析Mysql Join語法以及性能優(yōu)化

    在講MySQL的Join語法前還是先回顧一下聯結的語法,呵呵,其實連我自己都忘得差不多了,那就大家一起溫習吧,這里我有個比較簡便的記憶方法,內外聯結的區(qū)別是內聯結將去除所有不符合條件的記錄,而外聯結則保留其中部分。外左聯結與外右聯結的區(qū)別在于如果用A左聯結B則A中所有記錄都會保留在結果中,此時B中只有符合聯結條件的記錄,而右聯結相反,這樣也就不會混淆了。
    2014-05-05
  • clickhouse復雜時間格式的轉換方式

    clickhouse復雜時間格式的轉換方式

    這篇文章主要介紹了clickhouse復雜時間格式的轉換方式,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2023-12-12
  • Mysql 8 新特性 window functions 的作用

    Mysql 8 新特性 window functions 的作用

    MySQL是眾多網站技術棧中的標準配置,是廣受歡迎的開源數據庫,已經推出了8.0的第一個候選發(fā)行版本。接下來通過本文給大家分享Mysql 8 新特性 window functions 的作用,需要的朋友參考下吧
    2017-11-11
  • mysql實現查詢數據并根據條件更新到另一張表的方法示例

    mysql實現查詢數據并根據條件更新到另一張表的方法示例

    這篇文章主要介紹了mysql實現查詢數據并根據條件更新到另一張表的方法,結合實例形式分析了mysql多表關聯查詢、更新等相關操作技巧,需要的朋友可以參考下
    2019-03-03
  • MySQL自定義函數簡單用法示例

    MySQL自定義函數簡單用法示例

    這篇文章主要介紹了MySQL自定義函數簡單用法,結合實例形式分析了mysql自定義函數的基本定義、使用方法及操作注意事項,需要的朋友可以參考下
    2018-12-12
  • 詳細解讀分布式鎖原理及三種實現方式

    詳細解讀分布式鎖原理及三種實現方式

    這篇文章從三種基于不同形式的分布式鎖的實現,數據庫、緩存和zookeeper,內容比較詳細,具有一定參考價值,需要的朋友可以了解下。
    2017-10-10
  • Mysql數據庫介紹及mysql顯示命令

    Mysql數據庫介紹及mysql顯示命令

    這篇文章主要介紹了Mysql數據庫介紹及mysql顯示命令 的相關資料,需要的朋友可以參考下
    2016-04-04
  • Navicat導出MySQL數據庫表結構到Excel過程

    Navicat導出MySQL數據庫表結構到Excel過程

    本文介紹了如何將數據庫中的表結構導出到Excel文件中,包括使用SQL語句查詢表結構并使用Navicat工具導出到Excel文件的步驟,總結:將數據庫表結構導出到Excel文件中,便于后續(xù)使用或存檔
    2026-01-01
  • MySQL實現JDBC詳細步驟

    MySQL實現JDBC詳細步驟

    JDBC?是?Java?訪問數據庫的標準規(guī)范,真正怎么操作數據庫還需要具體的實現類,也就是數據庫驅動,本文給大家介紹MySQL實現JDBC詳細講解,感興趣的朋友一起看看吧
    2022-02-02
  • MySQL中group by與max()一起使用的坑

    MySQL中group by與max()一起使用的坑

    最近在做一個項目,發(fā)現用之前SQL語句導出的余額與客戶人員最近消費記錄所顯示的余額不一致,本文就來了解一下這個錯誤,感興趣的可以了解一下
    2023-08-08

最新評論

军事| 沾化县| 新乡县| 苗栗市| 盐津县| 额尔古纳市| 田东县| 曲松县| 建水县| 张家川| 奎屯市| 呼伦贝尔市| 尼勒克县| 法库县| 翼城县| 高平市| 准格尔旗| 连江县| 连云港市| 牙克石市| 屏东县| 射洪县| 庆元县| 黄浦区| 双鸭山市| 彰化市| 武平县| 天水市| 昌都县| 德化县| 阿克苏市| 海南省| 桃园县| 长子县| 长沙县| 华池县| 甘孜| 武川县| 曲阜市| 资中县| 平南县|