Mysql中存儲引擎簡介、修改、查詢、選擇

場景

數據庫存儲引擎

數據庫存儲引擎是數據庫底層軟件組件,數據庫管理系統(DBMS )使用數據引擎進行創建、查詢、更新和刪除數據的操作。

不同的存儲引擎提供不同的存儲機制、索引技巧、鎖定水平等功能,使用不同的存儲引擎還可以獲得特定的功能。

現在許多數據庫管理系統支持多種數據引擎。 MySQL 的核心就是存儲引擎。

MySQL 提供了多種不同的存儲引擎,包括處理事務安全表的引擎和處理非事務安全表的引擎。

在 MySQL中不需要在整個服務器中使用同一種存儲引擎,可以針對具體的要求對每一個表使用不同的存儲引擎。

MySQL支持的存儲引擎有InnoDB、MyISAM、Memory、Merge、 Archive 、Federated、CSV、BLACKHOLE等。

用戶可以使用 SHOW ENGINES 語句查看系統支持的引擎類型。

注:

博客:
霸道流氓氣質-CSDN博客

實現

InnoDB存儲引擎

InnoDB 是事務型數據庫的首選引擎,支持事務安全表( ACID ),支持行鎖定和外鍵。

MySQL 的默認存儲引擎為 InnoDB, InnoDB 的主要特點如下:

(1)?InnoDB給MySQL 提供了具有提交、回滾和崩潰恢復能力的事務安全(ACID 兼容)存儲引擎。

InnoDB 鎖定在行級,并且也用 SELECT 語句提供一個類似 Oracle 的非鎖定讀。

這些功能增加了多用戶部署和性能。

在SQL 查詢中可以自由地將 InnoDB 類型的表與 MySQL 其他類型的表混合起來,甚至在同一個查詢中也可以混合。

(2) InnoDB 是為處理巨大數據量時的最大性能設計,它的 CPU 效率可能是任何其他基于磁盤的關系數據庫引擎所不能匹敵的。

(3) InnoDB 存儲引擎被完全與 MySQL 服務器整合, InnoDB存儲引擎為在主內存中緩存數據和索引而維持它自己的緩沖池。

InnoDB 的表和索引在一個邏輯表空間中, 表空間可以包含數個文件(或原始碰盤分區)。

這與 MyISAM 表不同,比如在 MyISAM 表中每個表被保存在分離的文件中。 InnoDB 表可以是任何尺寸,

即使在文件尺寸被限制為 2GB 的操作系統上。

(4) InnoDB支持外鍵完整性約束(FOREIGN KEY)。在存儲表中的數據時每張表的存儲都按主鍵順序存放,

如果沒有顯式地在定義表時指定主鍵, lnnoDB 會為每一行生成一個6字節的 ROWID ,并以此作為主鍵。

(5) InnoDB被用來在眾多需要高性能的大型數據庫站點上。InnoDB 不創建目錄,

在使用 InnoDB時MySQL 將在 MySQL 數據目錄下創建一個名為ibdatal的10MB 大小的自動擴展數據文件,

以及兩個名為ib _logfile()和ib_ logfilel的5MB大小的曰志文件。

MyISAM存儲引擎

MyISAM 基于 ISAM 存儲引擎,并對其進行擴展。它是在 Web 、數據倉儲和其他應用環境下最常使用的存儲引擎之一。

?MyISAM 擁有較高的插 入、查詢速度,但不支持事務。

MyISAM 的主要特點如下:

(1)大文件(達 63 位文件長度)在支持大文件的文件系統和操作系統上被支持。

(2)當把刪除、更新及插入混合的時候,動態尺寸的行的碎片更少,這要通過合并相鄰被刪除的塊來完成,

若下一個塊被刪除,則擴展到下一塊自動完成。

(3)每個 MyISAM 表的最大索引數是 64,這可以通過重新編譯來改變。每個索引最大的列數是 16 個。

(4)最大的鍵長度是 1000 字節,這也可以通過編譯來改變。對于鍵長度超過 25 字節的情況,使用一個超過 1024 字節的鍵塊。

(5) BLOB TEXT 列可以被索引。

(6) NULL 被允許在索引的列中,其占每個鍵的0-1字節。

(7)所有數字鍵值先以高字節位被存儲,以允許一個更高的索引壓縮。

(8)對于每個表的 AUTO_INCREMENT列, MyISAM 通過 INSERT UPDATE 操作自動更新這一列,

這使得 AUTO MENT 列更快(至少 10% )。注意,在序列項的值被刪除之后就不能再利用。

(9)可以把數據文件和索引文件放在不同目錄。

(10)每個字符列可以有不同的字符集。

(11)有VARCHAR 的表可以有固定或動態記錄長度。

(12)VARCHAR和CHAR 列可以多達 64KB。

使用 MyISAM引擎創建數據庫將產生3個文件,文件的名字以表的名字開始,擴展名指出文件類型。

fun文件存儲表定義,數據文件的擴展名為.myd ( MYData ),索引文件的擴展名為 .myi (MYindex)。

MEMORY存儲引擎

MEMORY 存儲引擎將表中的數據存儲在內存中,為查詢和引用其他表中的數據提供快速訪問。

MEMORY 的主要特點如下:

(1)MEMORY表可以有多達每個表 32 個索引,每個索引 16 列, 以及 500 字節的最大鍵長度。

(2)MEMORY存儲引擎執行 HASH和BTREE 索引。

(3)可以在一個MEMORY 表中有非唯一鍵。

(4)MEMORY表使用一個固定的記錄長度格式。

(5)MEMORY不支持 BLOB或TEXT列。

(6)MEMORY支持 AUTO_INCREMENT 列和對可包含 NULL 值的列的索引。

(7)MEMORY表在所有客戶端之間共享(就像其他任何非TEMPORARY表)。

(8)MEMORY 表內容被存在內存中,內存是MEMORY表和服務器在查詢處理的空閑中創建的內部表共享。

(9)當不再需要 MEMOR 表的內容時要釋放被 MEMORY 表使用的內存,應該執行

DELETE FROM 或 TRUNCATE TABLE,或者整個地刪除表(使用 DROP TABLE)。

存儲引擎的選擇

不同的存儲引擎有不同的特點,適用于不同的需求,為了做出正確的選擇,

用戶首先需要考慮每個存儲引擎提供了哪些不同的功能。

如果要提供提交、回滾和崩潰恢復能力的事務安全(ACID 兼容)能力,并要求實現并發控制,InnoDB是個很好的選擇。

如果數據表主要用來插入和查詢記錄,則MyISAM 引擎能提供較高的處理效率。

如果只是臨時存放數據,數據量不大,并且不需要較高的數據安全性,可以選擇將數據保存在內存中的 Memory引擎,

在MySQL 中使用該引擎作為臨時表存放查詢的中間結果。

如果只有 INSERT和SELECT 操作,可以選擇 Archive 引擎 ,Archive 引擎支持高并發的插入操作 但是本身并不是事務安全的。

Archive 引擎非常適合存儲歸檔數據 例如記錄日志信息可以使用 Archive 引擎。

具體使用哪一種引擎要根據需要靈活選擇,一個數據庫中的多個表可以使用不同引擎以滿足各種性能和實際需求,

使用合適的存儲引擎將會提高整個數據庫的性能。

Mysql更改表的存儲引擎

ALTER TABLE fruit ENGINE=MyISAM;

Mysql查看系統所支持的存儲引擎類型

SHOW ENGINES;

Mysql查看當前默認的存儲引擎

SELECT @@default_storage_engine;

Mysql查看特定庫中所有表的存儲引擎

SELECT TABLE_NAME, ENGINE FROM information_schema.TABLES WHERE TABLE_SCHEMA = '數據庫名';

Mysql查看單個表的存儲引擎

SHOW TABLE STATUS LIKE 'fruit';

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/42263.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/42263.shtml
英文地址,請注明出處:http://en.pswp.cn/web/42263.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

【C++報錯已解決】Invalid Use of ‘this’ Pointer

🎬 鴿芷咕:個人主頁 🔥 個人專欄: 《C干貨基地》《粉絲福利》 ??生活的理想,就是為了理想的生活! 文章目錄 引言 一、問題描述1.1 報錯示例1.2 報錯分析1.3 解決思路 二、解決方法2.1 方法一:修正‘this’指針使用2…

React+TS前臺項目實戰(二十六)-- 高性能可配置Echarts圖表組件封裝

文章目錄 前言CommonChart組件1. 功能分析2. 代碼詳細注釋3. 使用到的全局hook代碼4. 使用方式5. 效果展示 總結 前言 Echarts圖表在項目中經常用到,然而,重復編寫初始化,更新,以及清除實例等動作對于開發人員來說是一種浪費時間…

LVS-DR負載均衡

LVS-DR負載均衡 LVS—DR工作模式 原理 客戶端訪問調度器的VIP地址,在路由器上應該設置VIP跟調度器的一對一的映射關系,調度器根據調度算法將該請求“調度“到后端真實服務器,真實服務器處理完畢后直接將處理后的應答報文發送給路由器&#xf…

EDI安全:如何在2024年保護您的數據免受安全和隱私威脅

電子數據交換(EDI)支持使用標準化格式在組織之間自動交換業務文檔。這種數字化轉型徹底改變了業務通信,消除了對紙質交易的需求并加速了交易。然而,隨著越來越依賴 EDI 來傳輸發票、采購訂單和發貨通知等敏感數據,EDI …

【跨境分享】中國商家如何卷到國外?電商獨立站和電商平臺的優勢對比

為什么要選擇獨立站而不是電商平臺 對于跨境電商經營者而言,采取多平臺、多站點的運營策略是至關重要的戰略布局。這一做法不僅有助于分散風險,避免將所有投資集中于單一市場,從而降低“所有雞蛋置于同一籃子”的隱患,而且有利于拓…

【友邦保險-注冊安全分析報告】

前言 由于網站注冊入口容易被黑客攻擊,存在如下安全問題: 暴力破解密碼,造成用戶信息泄露短信盜刷的安全問題,影響業務及導致用戶投訴帶來經濟損失,尤其是后付費客戶,風險巨大,造成虧損無底洞…

華為od相關信息分享

2024年OD統一考試(D卷)完整題庫:華為OD機試2024年最新題庫(Python、JAVA、C合集) 問 1.什么是華為od? 答:OD全稱是Outsourcing Dispacth,即外包派遣,是華為和外企德科…

金蝶云蒼穹-插件開發(三)關于基礎資料/單據實體的id

基礎資料/單據實體的id 每個基礎資料和單據的實體,都有一個id字段,這個id是其一個唯一性標識,就類似于這個實體的身份證號一樣。通常,這個id用來找到指定的實體。這個id在代碼中都是long類型接收的。 如果基礎資料/單據里面有字…

Kafka日志處理:深入了解偏移量查找與切分文件

我是小米,一個喜歡分享技術的29歲程序員。如果你喜歡我的文章,歡迎關注我的微信公眾號“軟件求生”,獲取更多技術干貨! Hello, 大家好!我是你們的技術小伙伴小米,今天要和大家分享一些關于Kafka日志處理的深入知識。我們將討論如何查看偏移量為23的消息,以及Kafka日志分…

重載、覆蓋(重寫)、重定義(同名隱藏)的區別 (超詳解)

📚 重載(Overloading)、覆蓋(Overriding)、重定義(Hiding)是面向對象編程中常見的概念,它們分別用于描述不同情況下函數或方法的行為。 目錄 重載(Overloading&#xff…

ST7789 linux4.x驅動

文章目錄 ST7789 linux4.x驅動設備樹配置驅動程序編譯驅動測試驅動 ST7789 linux4.x驅動 設備樹配置 pinctrl_ecspi2_cs_1: ecspi2_cs_grp-1 {fsl,pins <MX6UL_PAD_CSI_DATA01__GPIO4_IO22 0x40017059>; };pinctrl_ecspi2_1: escpi2grp {fsl,pins <MX6UL_PAD_CSI_…

RocketMQ快速入門:主從、集群模式原理及搭建實操(十一)

目錄 0. 引言1. 前備知識1.1 namesrv集群模式1.2 broker集群模式1.2 broker主從復制原理 2. 集群部署2.1 環境準備2.2 配置講解2.3 一主多從模式部署2.4 多主無從模式部署2.5 多主多從模式部署 3. 總結 0. 引言 在學習完rocketmq的基礎知識后&#xff0c;我們進入rocketmq高可…

痙攣性斜頸對生活有哪些影響?

痙攣性斜頸&#xff0c;這個名字聽起來可能并不熟悉&#xff0c;但它實際上是一種神經系統疾病&#xff0c;影響著全球數百萬人的生活質量。它以一種無法控制的方式&#xff0c;使患者的頸部肌肉發生不自主的收縮&#xff0c;導致頭部姿勢異常。對于患者來說&#xff0c;痙攣性…

和Bug較勁的第n天:[Error: Unable to open snapshot file: No such file or directory]

問題描述 最近做了一個小demo&#xff0c;基于parcel的&#xff0c;在遷移倉庫的時候發生了一個報錯 [Error: Unable to open snapshot file: No such file or directory] 原因分析&#xff1a; 在遷移倉庫的時候&#xff0c;我將項目放入了一個以中文命名的文件夾里&#xf…

模電基礎 - 信號的運算和處理

目錄 一. 簡介 二. 加法 三. 減法 四. 乘法 五. 除法 六. 總結 一. 簡介 在模電基礎中&#xff0c;信號的運算和處理是非常重要的內容。 信號的運算包括加法、減法、乘法、除法等。通過使用集成運放&#xff0c;可以很容易地實現這些運算。例如&#xff0c;利用反相輸入…

算法的幾種常見形式

算法&#xff08;Algorithm&#xff09; 算法&#xff08;Algorithm&#xff09;是指解決問題或完成任務的一系列明確的步驟或規則。在計算機科學中&#xff0c;算法是程序的核心部分&#xff0c;它定義了如何執行特定的任務或解決特定的問題。算法可以用多種方式來表示和實現…

宜春旅游集散中心展廳OLED透明屏方案設計

一、項目概述 為提升宜春旅游集散中心展廳的現代化展示水平&#xff0c;增強游客的參觀體驗&#xff0c;我們計劃在展廳的核心區域引入OLED透明屏技術。該方案旨在通過高科技的視覺呈現方式&#xff0c;將展品信息以虛擬與現實相結合的方式展現&#xff0c;打造出一個既具科技感…

谷粒商城學習筆記-22-分布式組件-SpringCloud-OpenFeign測試遠程調用

文章目錄 一&#xff0c;OpenFeign的簡介二&#xff0c;OpenFeign的使用步驟1&#xff0c;場景說明2&#xff0c;引入依賴2&#xff0c;開啟OpenFeign3&#xff0c;編寫Feign接口4&#xff0c;使用feign調用遠程接口5&#xff0c;驗證 錯誤記錄 上一節學習了注冊中心&#xff0…

鼠標錄制工具|鍵鼠軌跡錄制,實現自動辦公

利用鍵鼠錄制工具錄制固定的鼠標點擊、鍵盤輸入等操作&#xff0c;實現自動化執行固定操作&#xff0c;節省時間。鼠標錄制功能可以錄制多步驟的操作&#xff0c;將錄制的動作保存并命名&#xff0c;甚至可以編輯操作速度。下面將演示幾種生活中常見的案例&#xff0c;詳細講解…

企業微信hook接口協議,移除群成員通知

移除群成員通知 返回示例 {"flag": 0, "receiver": 0, "sender_name": "", "is_room": 1, "server_id": 15318083, "send_time": 1687688952, "sender": 1688855749266556, "referid&…