MySQL的存儲引擎:

目錄

InooDB引擎:

MyISAM引擎:

InooDB引擎與MyISAM存儲引擎的區別:

Archive引擎:

Blackhole引擎:

CSV引擎:

Memory引擎:

Federated引擎:

Merge引擎:

NDB引擎:


InooDB引擎:

具備外鍵支持功能的事務存儲引擎。

InooDB是MySQL的默認事務性引擎,被設計用來處理大量的短期(short-lived)事務。可以確保事務的完整提交(commit)和回滾(rollback)。除了增加和查詢外,還需要更新、刪除,優先選擇InooDB存儲引擎。支持行級鎖,操作時只鎖某一行,不對其他行有影響,適合高并發的操作。

InooDB讀寫操作的處理效率差一些,對內存要求較高。

MyISAM引擎:

主要的非事務處理存儲引擎。提供了大量的特性,包括全文索引、壓縮、空間函數等。訪問速度快,對事物完整性沒有要求或者以SELECT、INSERT為主的應用。針對數據統計有額外的常數存儲,所以COUNT(*)查詢效率很高。只讀應用或者以讀為主的,優先選擇MyISAM存儲引擎。

不支持事務、行級鎖、外鍵,崩潰后無法安全恢復。表鎖,即使操作一條記錄也會鎖住整個表,不適合高并發的操作。

InooDB引擎與MyISAM存儲引擎的區別:

InooDB提供了良好的事務管理、崩潰修復能力和并發控制。因為InooDB支持事務,所以對于要求事務完整性的場合需選擇InooDB。缺點是讀寫效率稍差,占用的數據空間相對比較大。

MyISAM提供了大量的特性,但是不支持事務、外鍵,崩潰后無法安全恢復。以讀操作和插入操作為主,只有很少的更新、刪除操作,并且對事物的要求沒那么高,就可以選擇MyISAM存儲引擎。優點是占用空間小,處理速度快。缺點是不支持事物的完整性和并發性。

對比MyISAM的存儲引擎,InooDB寫的處理效率差一些,并且會占用更多的磁盤空間以保存數據和索引。

MyISAM只緩存索引,不緩存真實數據,InooDB不僅緩存索引還要緩存真實數據,對內存的要求較高,而且內存大小對性能有決定性的影響。

Archive引擎:

用于數據存檔。僅支持插入和查詢兩種功能(行被插入后不能再修改)。

MySQL5.5以后支持索引功能。

擁有很好的壓縮機制,使用zlib庫,在記錄請求時實時的進行壓縮,經常被用來作為倉庫使用。

創建ARCHINE表時,存儲引擎會創建名稱以表名開頭的文件。數據文件的擴展名為.ARZ。

同樣的數據量下,比MyISAM表要小大約75%,比InnoDB表小大約83%。

采用了行級鎖。該ARCHIVE引擎支持auto_increment列屬性,auto_increment列可以具有唯一索引或者非唯一索引。在其他列創建索引會導致錯誤。

適合日志和數據采集應用,適合存儲大量的獨立的作為歷史記錄的數據,擁有很高的插入速度,但是對查詢的支持較差。

Blackhole引擎:

丟棄寫操作,讀操作會返回空內容。

Blackhole引擎沒有實現任何存儲機制,會丟棄所有插入的數據,不做任何保存。但是服務器會記錄Blackhole表的日志,所以可以用于賦值數據到備庫,或者簡單地記錄到日志,但是有很多問題。

CSV引擎:

存儲數據時,以逗號分隔各個數據項。

CSV引擎可以將普通的CSV文件作為MySQL的表來處理,但不支持索引。可以作為一種數據交換的機制。存儲的數據直接可以在操作系統里,用文本編譯器,或者excel讀取。對于數據的快速導入、導出是有明顯優勢的。

創建CSV表時,服務器會創建一個純文本數據文件,其名稱以表名開頭并帶有.CSV擴展名,將數據存儲到表中時,存儲引擎將其以逗號分隔值格式保存到數據文件中。

Memory引擎:

Memory采用的邏輯時內存,響應速度快,但是當進程崩潰時數據會丟失。要求存儲的數據是數據長度不變的格式。

Memory同時支持哈希索引和B+數索引。至少比MyISAM表要快一個數量級。表的大小是受到限制的,主要取決于兩個參數,分別是max_rows和max_heap_table_size。

數據文件與索引文件分開存儲。每個基于Memory存儲引擎的表實際對應一個磁盤文件,文件名與表明相同,類型為frm類型,該文件中只存儲表的結構,數據文件都是存儲在內存中的。有利于數據的快速處理,提高整個表的處理效率。

缺點是:數據易丟失,生命周期短。

適用場景:

目標數據比較小,而且頻繁的進行訪問。在內存中存放數據,如果太大會造成內存溢出,可以控制max_heap_table_size控制Memory表的大小。如果數據是臨時的,必須立即可用得到,那么可以放在內存中。存儲的數據突然間丟失也沒有太大關系。

Federated引擎:

訪問遠程表。

Federated引擎是訪問其他的MySQL服務器的一個代理,提供了一種很好的跨服務器的靈活性,但是有很多問題。因此默認是禁用的。

Merge引擎:

管理多個MyISAM表構成的表集合。

NDB引擎:

MySQL集群專用存儲引擎。

NDB引擎主要用于MySQL Cluster分布式集群環境。

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

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

相關文章

Mock與Stub

一、核心概念與差異對比特性MockStub核心目的驗證對象間的交互行為提供預定義的固定響應驗證重點方法調用次數、參數、順序不關注調用過程,只關注結果行為模擬可編程的智能模擬靜態的簡單響應適用場景驗證協作關系隔離依賴、提供固定數據復雜性較高(需要…

香港服務器容器網絡插件的多節點通信性能基準測試

香港服務器容器網絡插件的多節點通信性能基準測試在云計算和容器化技術快速發展的今天,香港服務器因其優越的地理位置和網絡環境,成為眾多企業部署容器服務的首選。本文將深入探討香港服務器環境下容器網絡插件的多節點通信性能,通過詳實的基…

Vue3 學習教程,從入門到精通,Vue 3 全局 API 語法知識點及案例詳解(32)

Vue 3 全局 API 語法知識點及案例詳解 Vue 3 提供了豐富的全局 API,用于創建應用實例、注冊全局組件、指令、插件等。以下將詳細介紹 Vue 3 的主要全局 API,并結合詳細的案例代碼進行說明。每個案例代碼都包含中文注釋,幫助初學者更好地理解…

UE5多人MOBA+GAS 41、制作一個飛彈,添加準心索敵

文章目錄添加新角色(不寫了)創建一個發射技能創建一個飛彈類添加擊中特效添加準星UI獲取瞄準目標添加新角色(不寫了) 將原本的機器人藍圖改為BP_PlayerCharacter,以此創建子藍圖 創建動畫藍圖模板(具體就…

解決渲染抖動與滾動錨點定位不準確問題的方法與經驗分享

場景描述:React 虛擬列表(Virtualized List)是當我們在處理大列表時,為了提升性能而采用的一種技術。然而在實現過程中,可能會遇到渲染抖動問題以及滾動錨點定位不準確的問題。??解決方案:React虛擬列表實…

OpenAI 時隔多年再開源!GPT-OSS 120B/20B 發布,支持本地部署,消費級 GPU 即可運行

OpenAI 近期做出了一項令人矚目的戰略轉變:宣布推出兩款開放權重(Open Weight) 語言模型 GPT-OSS-120B 和 GPT-OSS-20B。這不僅是其自 GPT-2 之后首次開源模型,更關鍵的是,這兩款模型特別針對消費級硬件進行了深度優化…

MySQL高可用方案之MySQL Group Replication高可用架構搭建完全指南

MySQL Group Replication高可用架構搭建完全指南 前言 在當今互聯網應用中,數據庫高可用性已成為系統設計的核心需求。MySQL作為最流行的開源關系型數據庫之一,其高可用解決方案備受關注。MySQL Group Replication是MySQL官方推出的原生高可用解決方案,它基于Paxos協議實現…

網站SSL證書到期如何更換?簡單完整操作指南

----------------------------------------------------------------------------------------------- 這是我在我的網站中截取的文章,有更多的文章歡迎來訪問我自己的博客網站rn.berlinlian.cn,這里還有很多有關計算機的知識,歡迎進行留言或…

Spring Boot 開發三板斧:POM 依賴、注解與配置管理

引言 Spring Boot 是一個功能強大且廣受歡迎的框架,用于快速構建基于 Spring 的應用。它通過簡化配置和自動化管理,幫助開發者專注于業務邏輯的實現。然而,要想高效地開發 Spring Boot 應用,掌握以下三個關鍵點至關重要&#xff1…

kubernetes安裝搭建

個人博客站—運維鹿:http://www.kervin24.top/ CSDN博客—做個超努力的小奚: https://blog.csdn.net/qq_52914969?typeblog 一、kubernetes介紹 Kubernetes本質是一組服務器集群,它可以在集群的每個節點上運行特定的程序,來對節點中的容…

MySQL高可用方案之MySQL InnoDB Cluster高可用架構實戰指南:從零搭建到生產部署

MySQL InnoDB Cluster高可用架構實戰指南:從零搭建到生產部署 一、引言:為什么選擇MySQL InnoDB Cluster 在當今數據驅動的商業環境中,數據庫高可用性已成為企業IT基礎設施的核心需求。MySQL作為全球最受歡迎的開源關系型數據庫,其高可用解決方案備受關注。而MySQL InnoD…

祝融號無線電工作頻段

前面深入查證了旅行者1號的無線電工作頻段: 旅行者1號無線電工作頻段-CSDN博客 下面嘗試查證我國祝融號無線電工作頻段。 一、百度百科 來自百度百科: 我注意到一條關鍵信息: 這說明祝融號在國際上是有合作的,而不是我們國家單…

Kafka生產者相關原理

前言前面已經介紹了Kafka的架構知識并引出了Kafka的相關專業名稱進行解釋這次分享一下Kafka對生產者發送消息進行處理的運行機制和原理生產者發送消息兩種方式同步發送消息程序中線程執行完消息發送操作之后會等待Kafka的消息回應ack默認等待30秒沒有回應就會拋出異常等待時間和…

Python 獲取對象信息的所有方法

在 Python 里,我們經常需要檢查一個對象的類型、屬性、方法,甚至它的源碼。這對調試、學習和動態編程特別有用。今天我們就來聊聊獲取對象信息的常見方法,按由淺入深的順序來學習。 參考文章:Python 獲取對象信息 | 簡單一點學習…

vuhub Beelzebub靶場攻略

靶場下載: 下載地址:https://download.vulnhub.com/beelzebub/Beelzebub.zip 靶場攻略: 主機發現: nmap 192.168.163.1/24 端口掃描: nmap -p-65535 -A 192.168.163.152 發現沒有額外端口。 頁面掃描&#xff1…

開啟單片機

前言:為未來拼搏的第n天,從單片機開始。為什么要學習單片機呢,單片機的工作涉及范圍及其廣如:消費電子,游戲機音響;工業控制:機器人控制;醫療設備,通信設備,物…

人工智能系列(8)如何實現無監督學習聚類(使用競爭學習)?

案例:鳶尾花數據集的聚類一.聚類簡介神經網絡能夠從輸入數據中自動提取有意義的特征,而競爭學習規則使得單層神經網絡能夠根據相似度將輸入樣本進行聚類,每個聚類由一個輸出神經元代表并作為該類別的“原型”,從而實現對輸入模式的…

Windows安裝mamba全流程(全網最穩定最成功)

windows系統下安裝mamba會遇到各種各樣的問題。博主試了好幾天,把能踩的坑都踩了,總結出了在windows下安裝mamba的一套方法,已經給實驗室的windows服務器都裝上了。只要跟著我的流程走下來,大概率不會出問題,如果遇到其…

Autosar Dem配置-最大存儲的DTC信息個數配置-基于ETAS軟件

文章目錄 前言 Autosar Dem相關配置 ETAS工具中的配置 生成文件分析 測試驗證 總結 前言 診斷DTC開發中,會有故障快照和擴展數據的存儲需求,但由于控制器的可用存儲空間有限,所以無法存儲所有DTC的信息,這時就需要限制存儲的數量,本文介紹該參數在ETAS軟件中的配置。 Au…

【MySQL】EXISTS 與 NOT EXISTS 深度解析:從原理到實戰的完整指南

在復雜的業務查詢中,我們常常需要判斷“是否存在滿足某條件的記錄”或“找出不滿足某些條件的記錄”。這時,EXISTS 和 NOT EXISTS 子查詢便成為強大的工具。它們不僅邏輯清晰、語義明確,而且在某些場景下性能遠超 IN 或 JOIN。然而&#xff0…