1. 程式人生 > >MySQL資料庫的引擎有哪些?區別是什麼?

MySQL資料庫的引擎有哪些?區別是什麼?

MySQL資料庫有多種儲存引擎:比如:MyISAM、InnoDB、MERGE、MEMORY(HEAP)、BDB(BerkeleyDB)、EXAMPLE、FEDERATED、ARCHIVE、CSV、BLACKHOLE等等,最常見的也就是MyISAMInnoDB了,下面主要講解下MyISAM和InnoDB兩種mysql資料庫儲存引擎的區別。
  MyISAM引擎是一種非事務性的引擎,提供高速儲存和檢索,以及全文搜尋能力,適合資料倉庫等查詢頻繁的應用。MyISAM中,一個table實際儲存為三個檔案,.frm儲存表定義,.MYD儲存資料,.MYI儲存索引。MyISAM在所有MySQL配置裡被支援,它是預設的儲存引擎,除非你配置MySQL預設使用另外一個引擎。

  MySQL伺服器中的其他非事務性儲存引擎(如MyISAM)遵從不同的資料完整性範例,稱之為“原子操作”。按照事務術語,MyISAM表總能高效地工作在AUTOCOMMIT=1模式下。原子操作通常能提供可比較的完整性以及更好的效能。與經過優化調整的最快的事務性表相比,它的速度快3~5倍。由於MySQL伺服器支援兩種範例,因而你能決定是否利用原子操作的速度更好地服務於你的應用程式,或使用事務特性。該選擇可按表進行。

  InnoDB則是一種支援事務的引擎。給MySQL提供了具有提交,回滾和崩潰恢復能力的事務安全(ACID相容)儲存引擎。所以的資料儲存在一個或者多個數據檔案中,支援類似於Oracle的鎖機制。一般在OLTP應用中使用較廣泛。如果沒有指定InnoDB配置選項,MySQL將在MySQL資料目錄下建立一個名為ibdata1的自動擴充套件資料檔案,以及兩個名為ib_logfile0和ib_logfile1的日誌檔案。

  InnoDB鎖定在行級並且也在SELECT語句提供一個Oracle風格一致的非鎖定讀。這些特色增加了多使用者部署和效能。沒有在InnoDB中擴大鎖定的需要,因為在InnoDB中行級鎖定適合非常小的空間。InnoDB也支援FOREIGN KEY強制。在SQL查詢中,你可以自由地將InnoDB型別的表與其它MySQL的表的型別混合起來,甚至在同一個查詢中也可以混合。
  InnoDB是為處理巨大資料量時的最大效能設計。它的CPU效率可能是任何其它基於磁碟的關係資料庫引擎所不能匹敵的。InnoDB儲存引擎被完全與MySQL伺服器整合,InnoDB儲存引擎為在主記憶體中快取資料和索引而維持它自己的緩衝池。

  InnoDB儲存它的表&索引在一個表空間中,表空間可以包含數個檔案。InnoDB表可以是任何尺寸,即使在檔案尺寸被限制為2GB的作業系統上。InnoDB也預設被包括在所有MySQL 5.1二進位制分發版裡。

相關推薦

MySQL執行引擎哪些

MyISAM: 優勢 – 查詢速度快 – 資料和索引壓縮問題 – 表級鎖 – 資料丟失 InnoDB: 優勢 – 行級鎖 – 事務支援 – 資料安全問題 – 資料檔案龐大 – 啟動慢 – 不支援FULLTEXT索引   如果你是個賽車手並且按一下按鈕就能夠立即更換引擎

MySQL資料庫引擎哪些?區別是什麼?

MySQL資料庫有多種儲存引擎:比如:MyISAM、InnoDB、MERGE、MEMORY(HEAP)、BDB(BerkeleyDB)、EXAMPLE、FEDERATED、ARCHIVE、CSV、BLACKHOLE等等,最常見的也就是MyISAM和InnoDB了,下面主要講

MYSQL資料庫引擎區別詳解 MYSQL資料庫引擎區別詳解 mysql 資料庫引擎

MYSQL資料庫引擎區別詳解 mysql資料庫引擎常用面試總結 mysql 資料庫引擎 MySQL資料庫引擎取決於MySQL在安裝的時候是如何被編譯的。要新增一個新的引擎,就必須重新編譯MYSQL。在預設情況下,MYSQL支援三個引擎:ISAM、MYISAM和HEAP。另外兩種型別INNODB和BERK

MYSQL資料庫引擎區別

文章轉載至:https://www.cnblogs.com/zhangjinghe/p/7599988.html 資料庫引擎介紹 MySQL資料庫引擎取決於MySQL在安裝的時候是如何被編譯的。要新增一個新的引擎,就必須重新編譯MYSQL。在預設情況下,MYSQL支援三個引擎:ISAM、MY

MySQL----mysql引擎哪幾種,innodb Myisam 的區別

2、mysql的引擎有哪幾種,innodb Myisam 的區別?     1) 儲存引擎主要有:     1. MyIsam ,     2. InnoDB,     3. Memory,     4. Blackhole,      5. CSV,      6. Pe

SQL Server 和 Oracle 以及 MySQL 哪些區別

MySQL :MySQL的最初的核心思想,主要是開源、簡便易用。其開發可追溯至1985年,而第一個內部發行版本誕生,已經是1995年。到1998年,MySQL已經可以支援10中作業系統了,其中就包括win平臺。但依然問題多多,如不支援事務操作、子查詢 、外來鍵、儲存過程和檢視等功能。下圖是一個截止至2006年

Mysql資料庫mysql Schema 到底哪些東西& 手工注入的基礎要領

mysql> select * from information_schema.tables;   # 包含所有的表名 ,38 rows in set (0.09 sec) 表示有38張表 mysql> select count(*) from information_schema.tables;

MySQL資料庫引擎ISAM MyISAM HEAP InnoDB的區別

        MySQL資料庫引擎取決於MySQL在安裝的時候是如何被編譯的。要新增一個新的引擎,就必須重新編譯MYSQL。在預設情況下,MYSQL支援三個引擎:ISAM、MYISAM和HEAP。另外兩種型別INNODB和BERKLEY(BDB),也常常可以使用。如果技

郵件系統搜索引擎哪些常用功能?

郵件系統、搜索引擎郵件系統搜索引擎有哪些常用功能?電子郵箱的搜索功能是郵箱用戶的常用功能,當歷史郵件日益增加後,快速、精準地郵件搜索功能能讓用戶方便地找到需要的郵件,市場上的各品牌郵箱產品的搜索功能各自如何呢?接下來給大家介紹一款TurboMail郵件系統,功能與某Q郵箱一樣,最全面易用。1. 模糊搜索當郵箱

centos 6和centos 7的哪些區別

centos7和centos6區別1、默認文件系統CentosCentos7影響默認文件系統ext4xfs大量小文件在ext4上工作性能較好在64位linux中,ext4最大支持16TB的文件,xfs最大支持8EB的文件防火墻iptablesfirewalld原來使用iptables,現在在CentOS 7中

CentOS7和CentOS6具體哪些區別?我來分析分析,CentOS7上手不是問題

CentOS7和CentOS6的區別首先,先介紹一下CentOS7的鏡像,本文中,我們使用的是CentOS7.2的鏡像CentOS7的下載地址可以從以下這個地址下載http://mirrors.aliyun.com/centos/7/isos/x86_64/CentOS-7-x86_64-DVD-1708.i

framework中哪些內容,.framework和.a文件哪些區別

inf 文件的 建議 list dylib header 可執行文件 log app 一、framework中有哪些內容 1. Headers 頭文件 2. info.plist (動態庫沒有) 3. Mudues 4. 可執行文件 二、 1、類庫可分為動態庫(.dyl

工控機與普通電腦哪些區別

完成 電腦 電源 外設 固定 在家 生產 冗余 性能 工控機與普通電腦工作原理上是完全一樣的,但在實際的應用中,兩者並不能互為替代,兩種產品之間有哪些區別呢?定義:普通電腦 (personal computer— PC) 即“個人計算機”,這一詞源自於1978年IBM的第一

JAVA中局部變量 和 成員變量哪些區別

生命 bsp oda oid 出了 默認值 diff 就會 棧內存 JAVA中局部變量 和 成員變量有哪些區別 1.定義的位置不一樣<重點>***局部變量:在方法的內部成員變量:在方法的外部,直接寫在類當中 2.作用範圍不一樣<重點>***局部變量:

鏈路追蹤和應用性能監控哪些區別

開發者工具 jpeg 水平 form 阿裏 qfile 面向 ati 表格 概要 阿裏雲上最近推出了一款新產品 鏈路追蹤 ,專註於幫助開發者快速分析和診斷分布式應用架構下的性能瓶頸,提高微服務時代下的開發診斷效率。 分布式應用環境下的鏈路追蹤,並不是一個新話題。在早些時間

springCloud和dubbo哪些區別?

原 https://blog.csdn.net/anningzhu/article/details/76599875 一.兩者的模組組成: 1、Dubbo主要分為服務註冊中心,服務提供者,服務消費者,還有管控中心; 2、相比起Dubbo簡單的四個模組,SpringCloud則是一個完

最小二乘法和梯度下降法哪些區別

https://www.zhihu.com/question/20822481 最小二乘法的目標:求誤差的最小平方和,對應有兩種:線性和非線性。線性最小二乘的解是closed-form即,而非線性最小二乘沒有closed-form,通常用迭代法求解。 迭代法,即在每一步update未知量逐漸

thinkphp對資料庫操作哪些內建函式

getModelName() 獲取當前Model的名稱 getTableName() 獲取當前Model的資料表名稱 switchModel(type,vars=array()) 動態切換模型 table() 設定當前操作的資料表 field() 設定要查詢的資料欄位 where

前端成長01 高階程式設計師和普通程式設計師哪些區別

原文地址:高階程式設計師和普通程式設計師有哪些區別? - 暗滅的回答 - 知乎 先不說高階。就只說初級程式設計師經常容易犯的錯誤,把這些錯誤改正了,你離中級就不遠了。 初級程式設計師經常犯的錯誤集錦 命名不規範 日誌不規範 拒絕寫介面和假資料 不寫單

java.sql.preparedstatement和com.mysql.jdbc.preparedstatement什麼區別

java.sql.preparedstatement是sun公司給的介面,實現由各個資料庫公司自己實現,資料庫不止mysql一種,所有資料庫都必須實現sun的這個介面,com.mysql.jdbc.preparedstatement是mysql自己的實現,不同的資料庫都有不同的實現,名字也不