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

mysql?體系結(jié)構(gòu)和存儲(chǔ)引擎介紹

 更新時(shí)間:2022年05月06日 16:21:02   作者:??斜月????  
這篇文章主要介紹了mysql?體系結(jié)構(gòu)和存儲(chǔ)引擎,通過(guò)mysql數(shù)據(jù)庫(kù)常見(jiàn)的數(shù)據(jù)庫(kù)引擎展開(kāi)各個(gè)引擎之間的特性和區(qū)別。下文更多相關(guān)資料介紹感興趣的小伙伴可以參考一下

1 前言

mysql 是一個(gè)單進(jìn)程多線程架構(gòu)的可移植的數(shù)據(jù)庫(kù),mysql 數(shù)據(jù)庫(kù)實(shí)例在系統(tǒng)上的表現(xiàn)就是一個(gè)進(jìn)程,可以在所有的平臺(tái)上運(yùn)行。

mysql 的整體架構(gòu)圖如下圖所示: 

2 mysql 配置文件加載順序

mysql 啟動(dòng)會(huì)讀取配置文件,根據(jù)配置文件的參數(shù)啟動(dòng)數(shù)據(jù)庫(kù)實(shí)例,數(shù)據(jù)庫(kù)的配置文件為my.cnf,按照/etc/my.cnf -> /etc/mysql/my.cnf -> /usr/local/mysql/etc/my.cnf -> ~/my.cnf配置文件進(jìn)行順序加載,如果有相同的配置,則以最后一個(gè)加載的為準(zhǔn),這個(gè)和 springboot 的配置文件加載啟動(dòng)順序是類(lèi)似的。

3 mysql 引擎介紹

存儲(chǔ)引擎是基于表的,而不是數(shù)據(jù)庫(kù)。關(guān)于數(shù)據(jù)庫(kù)引擎的語(yǔ)句為:

# 修改數(shù)據(jù)庫(kù)引擎的語(yǔ)句
alter table table_name engine=MyISAM;
# 查詢數(shù)據(jù)庫(kù)可以支持的數(shù)據(jù)庫(kù)引擎
show engines

查看數(shù)據(jù)庫(kù)支持的引擎結(jié)果如下圖所示: 

 mysql 存儲(chǔ)引擎有 InnoDB,MyISAM,NDB 引擎,Memory 引擎, Archive 引擎,F(xiàn)ederated 引擎,Maria 引擎。

3.1 InnoDB 引擎

InnoDB 存儲(chǔ)引擎支持事務(wù),其涉及目標(biāo)主要是面向在線事務(wù)處理(OTLP),其特點(diǎn)是支持行鎖和外鍵,并支持非鎖定讀(即讀取數(shù)據(jù)默認(rèn)不會(huì)加鎖),從 mysql 5.5.8 版本開(kāi)始,InnoDB 存儲(chǔ)引擎就是mysql 的默認(rèn)存儲(chǔ)引擎。

InnoDB 存儲(chǔ)引擎將數(shù)據(jù)存放在一個(gè)邏輯表空間中。InnoDB 通過(guò)使用多版本并發(fā)控制(MVCC)來(lái)獲得高并發(fā)性的性能,并實(shí)現(xiàn)了SQL標(biāo)準(zhǔn)的4中隔離級(jí)別,默認(rèn)使用 repeatable 級(jí)別。同時(shí) innodb 引擎使用 next-locking 的測(cè)了來(lái)避免幻讀現(xiàn)象的產(chǎn)生。除此之外,Innodb 引擎還提供了插入緩存,二次寫(xiě),自適應(yīng)哈希索引,預(yù)讀等高性能和高可用的功能。

Innodb 存儲(chǔ)引擎采用了聚集的方式,因此每張表都是按照主鍵的順序進(jìn)行存放的。如果沒(méi)有顯示的指定表的主鍵,那么存儲(chǔ)引擎會(huì)為每行生成一個(gè)6字節(jié)的 rowid ,并以此作為主鍵使用。

3.2 MyISAM 引擎

MyISAM 存儲(chǔ)引擎不支持事務(wù)、支持表鎖不支持行鎖,支持全文索引,主要面向一些 OLAP 數(shù)據(jù)庫(kù)應(yīng)用。數(shù)據(jù)庫(kù)系統(tǒng)和文件系統(tǒng)很大的一個(gè)不同點(diǎn)在于對(duì)事務(wù)的支持,然而MyISAM存儲(chǔ)引擎不支持事務(wù),InnoDB 引擎支持,其引擎的緩沖池之緩存索引文件,而不緩存數(shù)據(jù)文件,這個(gè)和大多數(shù)的數(shù)據(jù)庫(kù)不同。

MyISAM 存儲(chǔ)引擎表是由 MYD 和 MYI 組成的一個(gè)系統(tǒng),前者用于存放數(shù)據(jù)文件,后者是存放索引文件。

3.3 NDB 引擎

NDB 引擎是一個(gè)集群存儲(chǔ)引擎,其結(jié)構(gòu)是 share nothing 的集群架構(gòu),因此能夠提供高可用性。NDB 的特點(diǎn)是數(shù)據(jù)全部存放在內(nèi)存中,因此根據(jù)主鍵查詢的效率速度極快,并且通過(guò)添加存儲(chǔ)節(jié)點(diǎn)來(lái)提高數(shù)據(jù)庫(kù)的性能。該存儲(chǔ)引擎的連接操作是在數(shù)據(jù)庫(kù)底層完成的,而不是在存儲(chǔ)引擎層完成的,如果是復(fù)雜的數(shù)據(jù)庫(kù)連接需要巨大的網(wǎng)絡(luò)開(kāi)銷(xiāo),查詢速度比較慢。

3.4 Archive 引擎

Archive 引擎只支持 insert 和 select 操作,從 mysql5.1 之后開(kāi)始支持索引,可以使用 zlib 算法進(jìn)行數(shù)據(jù)行的壓縮,壓縮比可以達(dá)到 1:10,改引擎特別適合做數(shù)據(jù)的歸檔操作,比如說(shuō)日志信息。該引擎使用行鎖來(lái)實(shí)現(xiàn)高并發(fā)的插入操作,但是其本身不是事務(wù)安全的,其設(shè)計(jì)目的主要是提供高速插入和壓縮功能。

3.5 Federated 引擎

Federated 存儲(chǔ)引擎并不存放數(shù)據(jù),它只是指向遠(yuǎn)程 mysql 數(shù)據(jù)庫(kù)服務(wù)器上的表,改引擎只支持mysql 數(shù)據(jù)庫(kù)表,不支持異構(gòu)數(shù)據(jù)表。

3.6 Maria 引擎

Maria 引擎是新開(kāi)發(fā)的數(shù)據(jù)庫(kù)引擎,其設(shè)計(jì)目的是用來(lái)取代 MyISAM 引擎,從而成為 MySQL 的默認(rèn)存儲(chǔ)引擎。該引擎的特點(diǎn)是:支持緩存數(shù)據(jù)和索引文件,應(yīng)用了行鎖設(shè)計(jì),提供了 MVCC 功能,支持事務(wù)和非事務(wù)安全的選項(xiàng),以及更好的 BLOB 字符類(lèi)型的處理性能。

3.7 其它引擎

除了以上提到的數(shù)據(jù)庫(kù)引擎外,還有CSV、Merge等數(shù)據(jù)庫(kù)引擎, 感興趣的可以繼續(xù)關(guān)注學(xué)習(xí)。

4 總結(jié)

到此這篇關(guān)于mysql 體系結(jié)構(gòu)和存儲(chǔ)引擎介紹的文章就介紹到這了,更多相關(guān)mysql 存儲(chǔ)引擎內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • MySQL對(duì)數(shù)據(jù)表已有表進(jìn)行分區(qū)表的實(shí)現(xiàn)

    MySQL對(duì)數(shù)據(jù)表已有表進(jìn)行分區(qū)表的實(shí)現(xiàn)

    本文主要介紹對(duì)現(xiàn)有的一個(gè)表進(jìn)行創(chuàng)建分區(qū)表,并把數(shù)據(jù)遷移到新表,可以按時(shí)間來(lái)分區(qū),具有一定的參考價(jià)值,感興趣的可以了解一下
    2021-10-10
  • mysql刪除重復(fù)記錄并且只保留一條的實(shí)現(xiàn)方法

    mysql刪除重復(fù)記錄并且只保留一條的實(shí)現(xiàn)方法

    本文主要介紹了mysql刪除重復(fù)記錄并且只保留一條的實(shí)現(xiàn)方法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2023-01-01
  • 為什么mysql自增主鍵不是連續(xù)的

    為什么mysql自增主鍵不是連續(xù)的

    在面試中被提問(wèn),mysql 中的 user 表的 id 默認(rèn)是自增的,但是數(shù)據(jù)庫(kù)存儲(chǔ)的結(jié)果卻不是連續(xù)的,你知道是什么原因嗎,本文就詳細(xì)的介紹一下,感興趣的可以了解一下
    2021-09-09
  • MySQL登錄時(shí)出現(xiàn) Access denied for user ‘root‘@‘xxx.xxx.xxx.xxx‘ (using password: YES) 的原因及解決辦法

    MySQL登錄時(shí)出現(xiàn) Access denied for user ‘

    今天打開(kāi)mysql的時(shí)候突然提示:Access denied for user 'root'@'localhost' (using password: YES) 在網(wǎng)上搜索了很多文章,本文就來(lái)做一下總結(jié),介紹了幾種場(chǎng)景的解決方法,感興趣的可以了解一下
    2024-03-03
  • 基于mysql事務(wù)、視圖、存儲(chǔ)過(guò)程、觸發(fā)器的應(yīng)用分析

    基于mysql事務(wù)、視圖、存儲(chǔ)過(guò)程、觸發(fā)器的應(yīng)用分析

    本篇文章是對(duì)mysql事務(wù)、視圖、存儲(chǔ)過(guò)程、觸發(fā)器的應(yīng)用進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下
    2013-05-05
  • mysql性能監(jiān)控工具Innotop簡(jiǎn)介及配置

    mysql性能監(jiān)控工具Innotop簡(jiǎn)介及配置

    INNOTOP是一個(gè)通過(guò)文本模式顯示MySQL和InnoDB的監(jiān)測(cè)工具。INNOTOP是用PERL語(yǔ)言寫(xiě)成的,這使它能更加靈活的使用在各種操作平臺(tái)之上,它能詳細(xì)的的監(jiān)控出當(dāng)前MYSQL和INNODB運(yùn)行的狀態(tài),以DBA根據(jù)結(jié)果,可以合理的優(yōu)化MYSQL,讓MYSQL更穩(wěn)定更高效的運(yùn)行。
    2014-08-08
  • 概述MySQL統(tǒng)計(jì)信息

    概述MySQL統(tǒng)計(jì)信息

    本篇文章通過(guò)統(tǒng)計(jì)信息的概念介紹以及MYSQL統(tǒng)計(jì)信息的優(yōu)勢(shì)等方面全面概述了MySQL統(tǒng)計(jì)信息的相關(guān)知識(shí)點(diǎn),有興趣的朋友學(xué)習(xí)下。
    2018-02-02
  • MySQL數(shù)據(jù)庫(kù)的多表操作

    MySQL數(shù)據(jù)庫(kù)的多表操作

    這篇文章主要介紹了MySQL數(shù)據(jù)庫(kù)的多表操作,文章圍繞主題展開(kāi)詳細(xì)的內(nèi)容介紹,具有一定的參考價(jià)值,感興趣的小伙伴可以參考一下,希望對(duì)你的學(xué)習(xí)有所幫助
    2022-08-08
  • MySQL慢查詢?nèi)罩緎lowlog的具體使用

    MySQL慢查詢?nèi)罩緎lowlog的具體使用

    本文主要介紹了MySQL慢查詢?nèi)罩緎lowlog的具體使用,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2024-06-06
  • Mysql5.7.11綠色版安裝教程圖文詳解

    Mysql5.7.11綠色版安裝教程圖文詳解

    本文通過(guò)圖文并茂的形式給大家展示Mysql5.7.11綠色版安裝教程,非常不錯(cuò),具有參考借鑒價(jià)值,需要的朋友參考下
    2017-01-01

最新評(píng)論

咸宁市| 茶陵县| 全南县| 青阳县| 临沭县| 外汇| 江都市| 太康县| 迭部县| 新和县| 崇义县| 雅安市| 建瓯市| 张掖市| 朝阳区| 峨眉山市| 谷城县| 民县| 阿拉善左旗| 南城县| 托克逊县| 黔西| 福州市| 循化| 申扎县| 青海省| 兴化市| 青川县| 正阳县| 竹溪县| 杭州市| 渭南市| 揭东县| 潼南县| 达州市| 开封市| 宜昌市| 桂林市| 东山县| 化隆| 黄梅县|