国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

【MySQL數(shù)據(jù)庫(kù) | 第十六篇】存儲(chǔ)引擎

這篇具有很好參考價(jià)值的文章主要介紹了【MySQL數(shù)據(jù)庫(kù) | 第十六篇】存儲(chǔ)引擎。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問(wèn)。

【MySQL數(shù)據(jù)庫(kù) | 第十六篇】存儲(chǔ)引擎

目錄

?前言:

?MySQL體系結(jié)構(gòu)圖:

存儲(chǔ)引擎簡(jiǎn)介:

1. InnoDB存儲(chǔ)引擎:

2. MyISAM存儲(chǔ)引擎:

3. MEMORY存儲(chǔ)引擎:

4. NDB Cluster存儲(chǔ)引擎:

5. ARCHIVE存儲(chǔ)引擎:

存儲(chǔ)引擎語(yǔ)法:

ACID與行級(jí)鎖:

?總結(jié):


?前言:

經(jīng)過(guò)前面15篇的學(xué)習(xí),我們已經(jīng)學(xué)完了SQL的基本語(yǔ)法內(nèi)容,大致掌握了數(shù)據(jù)庫(kù)的操作,而接下來(lái)我們將進(jìn)行SQL的進(jìn)階學(xué)習(xí),今天我們要學(xué)習(xí)的內(nèi)容為:MySQL的存儲(chǔ)引擎。

?MySQL體系結(jié)構(gòu)圖:

【MySQL數(shù)據(jù)庫(kù) | 第十六篇】存儲(chǔ)引擎

MySQL的結(jié)構(gòu)體系主要包含以下幾個(gè)方面的內(nèi)容:

1. 服務(wù)器層(Server Layer):提供了MySQL的核心服務(wù),包括連接管理、查詢(xún)解析、優(yōu)化等功能。

2. 存儲(chǔ)引擎(Storage Engine):提供了數(shù)據(jù)的存儲(chǔ)和訪問(wèn)服務(wù)。MySQL自身支持多種存儲(chǔ)引擎,如InnoDB、MyISAM等,每種存儲(chǔ)引擎都有自己特有的特點(diǎn)和功能。

3. 網(wǎng)絡(luò)層(Connection Layer):提供了MySQL與客戶(hù)端之間的通訊服務(wù),支持多種協(xié)議,如TCP/IP、HTTP等。

4. 應(yīng)用編程接口(Application Programming Interfaces,APIs):提供了多種編程接口,包括C、C++、Python等接口,以方便應(yīng)用程序與MySQL進(jìn)行交互操作。

MySQL的整個(gè)體系結(jié)構(gòu)主要是由這幾個(gè)部分組成的,其中服務(wù)器層和存儲(chǔ)引擎層是MySQL核心的組成部分,分別負(fù)責(zé)提供核心服務(wù)和數(shù)據(jù)的存儲(chǔ)和訪問(wèn)服務(wù)。網(wǎng)絡(luò)層和應(yīng)用編程接口層則提供了與客戶(hù)端和應(yīng)用程序之間交互操作的相關(guān)服務(wù)。這些組成部分配合使用,構(gòu)成了MySQL強(qiáng)大、靈活的系統(tǒng)結(jié)構(gòu)。

InnoDB是MySQL5.5版本后的默認(rèn)使用存儲(chǔ)引擎。

存儲(chǔ)引擎簡(jiǎn)介:

存儲(chǔ)引擎就是存儲(chǔ)數(shù)據(jù),建立索引,更新/查詢(xún)數(shù)據(jù)等技術(shù)的實(shí)現(xiàn)方式。存儲(chǔ)引擎是基于表的,而不是基于庫(kù)的,所以存儲(chǔ)引擎也被稱(chēng)為是表結(jié)構(gòu)。

MySQL中的存儲(chǔ)引擎是處理數(shù)據(jù)存儲(chǔ)和檢索方面的核心組件。MySQL支持多種不同的存儲(chǔ)引擎,這些存儲(chǔ)引擎在某些方面有著自己的獨(dú)特優(yōu)勢(shì)。

常見(jiàn)的MySQL存儲(chǔ)引擎包括以下幾種:

1. InnoDB存儲(chǔ)引擎:

InnoDB存儲(chǔ)引擎是MySQL中最常用的一個(gè)存儲(chǔ)引擎,也是默認(rèn)的存儲(chǔ)引擎。它支持ACID事務(wù),具有行級(jí)鎖定和外鍵約束等特性,適合于應(yīng)用于事務(wù)性和高并發(fā)的應(yīng)用程序。InnoDB支持?jǐn)?shù)據(jù)的熱備份和恢復(fù),并提供了高效的緩存機(jī)制。

2. MyISAM存儲(chǔ)引擎:

MyISAM不支持事務(wù),并且對(duì)于更新操作會(huì)鎖定整個(gè)表,但是在插入和查詢(xún)方面性能非常好。對(duì)于只讀應(yīng)用、或者單線程的應(yīng)用,使用MyISAM可以獲得更好的性能。MyISAM表的特點(diǎn)是表鎖定,速度快,但是不支持事務(wù),也不支持外鍵等約束。

3. MEMORY存儲(chǔ)引擎:

MEMORY存儲(chǔ)引擎是將表數(shù)據(jù)存儲(chǔ)在內(nèi)存中,適用于一些處理銷(xiāo)售、環(huán)境監(jiān)測(cè)等數(shù)據(jù)的場(chǎng)景。MEMORY是一個(gè)非常快速的存儲(chǔ)引擎,但是它的缺點(diǎn)是,當(dāng)服務(wù)器關(guān)閉進(jìn)程或者崩潰時(shí),表數(shù)據(jù)就被清空了。MEMORY還支持Hash索引,這極大的提高了查詢(xún)效率。

4. NDB Cluster存儲(chǔ)引擎:

NDB Cluster可以將一個(gè)數(shù)據(jù)庫(kù)拆分成多個(gè)節(jié)點(diǎn),每個(gè)節(jié)點(diǎn)都維護(hù)一個(gè)數(shù)據(jù)子集,并協(xié)同工作以支持完整的數(shù)據(jù)庫(kù)操作。這種存儲(chǔ)引擎用于大規(guī)模、高可用性的數(shù)據(jù)中心。

5. ARCHIVE存儲(chǔ)引擎:

ARCHIVE存儲(chǔ)引擎是一種僅用于存檔目的的存儲(chǔ)引擎,適用于一些數(shù)據(jù)日志、快照備份等場(chǎng)景。它旨在提供一個(gè)非常低的磁盤(pán)空間消耗和一個(gè)高性能的壓縮和解壓縮能力,不支持索引、更新和刪除操作,常用于寫(xiě)入數(shù)據(jù)后壓縮存檔。?

不同的存儲(chǔ)引擎在性能、特性、使用場(chǎng)景等方面各不相同,開(kāi)發(fā)者在使用MySQL時(shí)需要根據(jù)需求選擇合適的存儲(chǔ)引擎。

存儲(chǔ)引擎語(yǔ)法:

1.查詢(xún)當(dāng)前表的引擎:

show create  table 表名;

運(yùn)行結(jié)果:
【MySQL數(shù)據(jù)庫(kù) | 第十六篇】存儲(chǔ)引擎

?2.在創(chuàng)建表的時(shí)候指定存儲(chǔ)引擎:

create table name(
    字段1 字段類(lèi)型
    ....
    字段2 字段類(lèi)型
) ENGINE = 引擎類(lèi)型;

?實(shí)例:

create table try(
    id int
) engine = MyISAM;

運(yùn)行結(jié)果:
【MySQL數(shù)據(jù)庫(kù) | 第十六篇】存儲(chǔ)引擎

3.查詢(xún)當(dāng)前數(shù)據(jù)庫(kù)支持的引擎類(lèi)型:

show engines ;

運(yùn)行結(jié)果:
【MySQL數(shù)據(jù)庫(kù) | 第十六篇】存儲(chǔ)引擎

ACID與行級(jí)鎖:

ACID

? ? ?是一個(gè)表示事務(wù)處理基本原則的縮寫(xiě),包括以下四個(gè)方面:

  1. 原子性(Atomicity):一個(gè)事務(wù)被視為一個(gè)原子操作,它將所有的任務(wù)都視為一個(gè)整體(如果其中有一部分操作失敗,整個(gè)事務(wù)就會(huì)被回滾),要么全部完成,要么全部不完成。

  2. 一致性(Consistency):在事務(wù)開(kāi)始之前和事務(wù)結(jié)束之后,數(shù)據(jù)庫(kù)的狀態(tài)必須保持一致,這意味著事務(wù)執(zhí)行中間不能破壞數(shù)據(jù)庫(kù)的完整性約束。

  3. 隔離性(Isolation):隔離性指在數(shù)據(jù)庫(kù)執(zhí)行多個(gè)事務(wù)時(shí),每個(gè)事務(wù)都應(yīng)該是完全獨(dú)立的,執(zhí)行它們的順序不應(yīng)該影響結(jié)果。

  4. 持久性(Durability):持久性是指在事務(wù)完成之后,其產(chǎn)生的結(jié)果必須永久保存在數(shù)據(jù)庫(kù)中,即使出現(xiàn)了硬件故障或其他系統(tǒng)故障,也不能影響已提交的事務(wù)結(jié)果。

行級(jí)鎖:??

? ? ? 行級(jí)鎖(Row-Level Lock)是數(shù)據(jù)庫(kù)管理系統(tǒng)(DBMS)中的一種鎖機(jī)制,在處理并發(fā)讀寫(xiě)時(shí),對(duì)每一行數(shù)據(jù)進(jìn)行鎖定,以保證同時(shí)讀寫(xiě)的數(shù)據(jù)不會(huì)沖突。與傳統(tǒng)的表級(jí)鎖(Table-Level Lock)不同,行級(jí)鎖可以在只對(duì)某一行進(jìn)行加鎖的情況下,并發(fā)地處理多個(gè)事務(wù),從而提高數(shù)據(jù)處理的效率。

? ? ? ?行級(jí)鎖的工作原理是:在對(duì)一行數(shù)據(jù)進(jìn)行修改/刪除操作之前,向該行添加一個(gè)鎖定標(biāo)記,直到事務(wù)完成或在commit/rollback之后才釋放這行鎖定標(biāo)記。

? ? ? ?行級(jí)鎖的主要優(yōu)點(diǎn)包括:

? ? ? 1. 提高了并發(fā)性:行級(jí)鎖可以鎖定單獨(dú)的行而不是整個(gè)表,這意味著在并發(fā)訪問(wèn)時(shí)可以更加高效的實(shí)現(xiàn)讀和寫(xiě)的操作。

? ? ? 2. 減少了鎖定沖突:使用行級(jí)鎖可以減少鎖定并發(fā)訪問(wèn)帶來(lái)的沖突,避免了串行化操作,從而提高了執(zhí)行效率。

? ? ?3. 支持更高的事務(wù)處理能力:通過(guò)優(yōu)化鎖機(jī)制,行級(jí)鎖降低了鎖等待時(shí)間和鎖競(jìng)爭(zhēng)的頻率,從而支持更高的事務(wù)處理能力。

? ? ?需要注意的是,行級(jí)鎖在使用時(shí)需要控制兩個(gè)方面的問(wèn)題:鎖定粒度和鎖定時(shí)間。鎖的粒度太細(xì),可能會(huì)導(dǎo)致鎖定的數(shù)據(jù)量過(guò)大,導(dǎo)致鎖競(jìng)爭(zhēng)的開(kāi)銷(xiāo)過(guò)大;鎖的時(shí)間過(guò)長(zhǎng),又可能會(huì)影響并發(fā)讀寫(xiě)性能。因此在使用行級(jí)鎖時(shí),需要權(quán)衡粒度和時(shí)間兩個(gè)方面的因素,并根據(jù)實(shí)際應(yīng)用需求進(jìn)行適當(dāng)調(diào)整。

?總結(jié):

? ? ? ? 存儲(chǔ)引擎就是存儲(chǔ)數(shù)據(jù),建立索引,更新/查詢(xún)數(shù)據(jù)等技術(shù)的實(shí)現(xiàn)方式。?我們根據(jù)不同的需求來(lái)選擇不同的引擎來(lái)處理表數(shù)據(jù),可以使得效率大大提高。

今天的內(nèi)容到這里就結(jié)束了,感謝大家的閱讀。

如果我的內(nèi)容對(duì)你有幫助,請(qǐng)點(diǎn)贊,評(píng)論,收藏創(chuàng)作不易,大家的支持就是我堅(jiān)持下去的動(dòng)力!

【MySQL數(shù)據(jù)庫(kù) | 第十六篇】存儲(chǔ)引擎文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-480803.html

到了這里,關(guān)于【MySQL數(shù)據(jù)庫(kù) | 第十六篇】存儲(chǔ)引擎的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來(lái)自互聯(lián)網(wǎng)用戶(hù)投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • 第十六章 使用MariaDB數(shù)據(jù)庫(kù)管理系統(tǒng)

    一、數(shù)據(jù)庫(kù)管理系統(tǒng) 1、數(shù)據(jù)庫(kù)介紹 數(shù)據(jù)庫(kù)是指按照某些特定結(jié)構(gòu)來(lái)存儲(chǔ)數(shù)據(jù)資料的數(shù)據(jù)倉(cāng)庫(kù)。在當(dāng)今這個(gè)大數(shù)據(jù)技術(shù)迅速崛起的年代,互聯(lián)網(wǎng)上每天都會(huì)生成海量的數(shù)據(jù)信息,數(shù)據(jù)庫(kù)技術(shù)也從最初只能存儲(chǔ)簡(jiǎn)單的表格數(shù)據(jù)的單一集中存儲(chǔ)模式,發(fā)展到了現(xiàn)如今存儲(chǔ)海量數(shù)據(jù)

    2024年02月05日
    瀏覽(16)
  • 【數(shù)據(jù)結(jié)構(gòu)入門(mén)精講 | 第十六篇】并查集知識(shí)點(diǎn)及考研408、企業(yè)面試練習(xí)

    【數(shù)據(jù)結(jié)構(gòu)入門(mén)精講 | 第十六篇】并查集知識(shí)點(diǎn)及考研408、企業(yè)面試練習(xí)

    上一篇中我們進(jìn)行了散列表的相關(guān)練習(xí),在這一篇中我們要學(xué)習(xí)的是并查集。 在許多實(shí)際應(yīng)用場(chǎng)景中,我們需要對(duì)元素進(jìn)行分組,并且在這些分組中進(jìn)行查詢(xún)和修改操作。比如,在圖論中,我們需要將節(jié)點(diǎn)按照連通性進(jìn)行分組,以便進(jìn)行最小生成樹(shù)、最短路徑等算法;在計(jì)算

    2024年02月03日
    瀏覽(31)
  • MySQL基礎(chǔ)(三十六)其他數(shù)據(jù)庫(kù)日志

    MySQL基礎(chǔ)(三十六)其他數(shù)據(jù)庫(kù)日志

    千萬(wàn)不要小看日志 。很多看似奇怪的問(wèn)題,答案往往就藏在日志里。很多情況下,只有通過(guò)查看日志才能發(fā)現(xiàn)問(wèn)題的原因,真正解決問(wèn)題。所以,一定要學(xué)會(huì)查看日志,養(yǎng)成檢查日志的習(xí)慣,對(duì)提升你的數(shù)據(jù)庫(kù)應(yīng)用開(kāi)發(fā)能力至關(guān)重要。 MySQL8.0 官網(wǎng)日志地址:“ https://dev.mys

    2024年02月05日
    瀏覽(96)
  • SQL Server存儲(chǔ)過(guò)程(數(shù)據(jù)庫(kù)引擎)使用詳解

    SQL Server存儲(chǔ)過(guò)程(數(shù)據(jù)庫(kù)引擎)使用詳解

    SQL Server 中的存儲(chǔ)過(guò)程是一組一個(gè)或多個(gè) Transact-SQL 語(yǔ)句的引用。過(guò)程類(lèi)似于其他編程語(yǔ)言中的構(gòu)造,因?yàn)樗鼈兛梢裕?接受輸入?yún)?shù)并以輸出參數(shù)的形式向調(diào)用程序返回多個(gè)值。 包含在數(shù)據(jù)庫(kù)中執(zhí)行操作的編程語(yǔ)句。其中包括調(diào)用其他過(guò)程。 向調(diào)用程序返回狀態(tài)值,以指示成

    2023年04月09日
    瀏覽(17)
  • 【MySQL數(shù)據(jù)庫(kù) | 第十五篇】事務(wù)

    【MySQL數(shù)據(jù)庫(kù) | 第十五篇】事務(wù)

    ? ? 目錄 ? ?前言: ?介紹事務(wù): ?控制事務(wù): ?事務(wù)四大特性: ?并發(fā)事務(wù)問(wèn)題: ?事務(wù)隔離級(jí)別: 總結(jié): ? 這章我們將進(jìn)入到MySQL基礎(chǔ)篇的最后一章:事務(wù),希望大家可以堅(jiān)持下去,跟著我一起走完MySQL的學(xué)習(xí)之旅。 MySQL是一種關(guān)系型數(shù)據(jù)庫(kù)管理系統(tǒng),支持事務(wù)管理。 事

    2024年02月08日
    瀏覽(22)
  • 【MySQL數(shù)據(jù)庫(kù) | 第十二篇】:約束

    【MySQL數(shù)據(jù)庫(kù) | 第十二篇】:約束

    在MySQL中, 約束是一種限制數(shù)據(jù)表中列值的規(guī)定 。保證數(shù)據(jù)庫(kù)中的數(shù)據(jù)正確,有效性和完整性。MySQL中的約束有以下幾種: 1. 主鍵約束(Primary Key Constraint) :主鍵是用于唯一標(biāo)識(shí)表中每行記錄的列。主鍵約束要求 每個(gè)主鍵列的值都是唯一的,且不能為NULL 。一個(gè)表只能有一

    2024年02月08日
    瀏覽(18)
  • 二十三種設(shè)計(jì)模式第十六篇--觀察者模式

    二十三種設(shè)計(jì)模式第十六篇--觀察者模式

    觀察者模式是一種行為型設(shè)計(jì)模式,它建立了一種對(duì)象間的一對(duì)多依賴(lài)關(guān)系,使得當(dāng)一個(gè)對(duì)象的狀態(tài)發(fā)生變化時(shí),所有依賴(lài)于它的對(duì)象都會(huì)得到通知并自動(dòng)更新。這種模式可以實(shí)現(xiàn)對(duì)象間的松耦合通信,提高系統(tǒng)的可擴(kuò)展性和靈活性。 觀察者模式的核心是兩個(gè)角色:主題(

    2024年02月12日
    瀏覽(30)
  • 【MySQL數(shù)據(jù)庫(kù) | 第十三篇】多表查詢(xún)

    【MySQL數(shù)據(jù)庫(kù) | 第十三篇】多表查詢(xún)

    多表查詢(xún)是指在一個(gè)SQL語(yǔ)句中使用多個(gè)表進(jìn)行數(shù)據(jù)查詢(xún)和操作。多表查詢(xún)可以對(duì)數(shù)據(jù)表之間的關(guān)系進(jìn)行查詢(xún),例如可以通過(guò)連接多個(gè)表來(lái)獲取更完整的數(shù)據(jù)信息。關(guān)于單表查詢(xún)我們也介紹過(guò),已經(jīng)整理成文章發(fā)布:【MySQL數(shù)據(jù)庫(kù) | 第九篇】DQL操作_我是一盤(pán)牛肉的博客-CSDN博客

    2024年02月08日
    瀏覽(28)
  • mysql 數(shù)據(jù)庫(kù)引擎介紹

    mysql 數(shù)據(jù)庫(kù)引擎介紹

    一、數(shù)據(jù)庫(kù)引擎 ? ? 數(shù)據(jù)庫(kù)引擎是用于存儲(chǔ)、處理和保護(hù)數(shù)據(jù)的核心服務(wù)。利用數(shù)據(jù)庫(kù)引擎可控制訪問(wèn)權(quán)限并快速處理事務(wù),從而滿(mǎn)足企業(yè)內(nèi)大多數(shù)需要處理大量數(shù)據(jù)的應(yīng)用程序的要求。 使用數(shù)據(jù)庫(kù)引擎創(chuàng)建用于聯(lián)機(jī)事務(wù)處理或聯(lián)機(jī)分析處理數(shù)據(jù)的關(guān)系數(shù)據(jù)庫(kù)。這包括創(chuàng)建

    2024年02月14日
    瀏覽(89)

覺(jué)得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包