1. 程式人生 > >MySQL——6.MySQL中的儲存引擎介紹

MySQL——6.MySQL中的儲存引擎介紹

目錄

一、什麼是儲存引擎

儲存引擎就是指表的型別。資料庫的儲存型別決定了表在計算機中的儲存方式。使用者可以根據不同的儲存方式、是否進行事務處理等來選擇合適的儲存引擎。

二、如何檢視MySQL的儲存引擎

(一)檢視MySQL支援的儲存引擎:SHOW ENGINES

練習一、檢視MySQL支援的儲存引擎:SHOW ENGINES;

這裡寫圖片描述

練習二、更美觀的顯示,加\G,以網格形式展示:SHOW ENGINES \G;

這裡寫圖片描述 這裡寫圖片描述

support:就代表MySQL是否支援這種儲存引擎,yes代表支援,no表示不支援
comment:表示對這種儲存引擎的評論或者註釋
Transactions:是否支援事務處理,yes是支援,no是不支援
XA:是否是一個分散式的交易處理的XA規範,yes是支援,no是不支援
Savepoints:是否支援儲存點。yes表示支援,no表示不支援

我們預設的儲存引擎是InnoDB

(二)檢視顯示支援的儲存引擎資訊:SHOW VARIABLES LIKE’hava%’

這裡寫圖片描述

(三)檢視預設的儲存引擎:SHOW VARIABLES LIKE’storage_engine’(不好用)SHOW VARIABLES LIKE’%engine%’(好用)

這裡寫圖片描述

三、MySQL常用儲存引擎及特點

有了這些儲存引擎,建表的時候就可以用engine指定使用的儲存引擎。 不同的表可以用不同的儲存引擎。 涉及到以後優化或者業務邏輯的時候,就要選擇合適的儲存引擎。

(一)InnoDB儲存引擎

特點:(1)主要是給MySQL提供了事務,包括回滾,包括修復能力和多版本併發控制的一個事務完全。(2)只有它支援外界約束。(3)它建立表的表結構儲存在一個.fim的檔案裡。(4)資料和索引分別儲存在innodbdatahomedr和innodbdatafilepass定義的表空間中

缺點:讀取效率比較低,佔取空間比較大

(二)MyISAM儲存引擎

特點 :(1)當我們用MyISAM引擎建立表的時候,要把我們的表儲存成三個檔案,檔案的名字和表名相同,分別是fim,mid和mii。fim是儲存表結構的,fid是儲存我們的資料的,fii是儲存我們的索引的。(2)基於我們MyISAM儲存引擎的表支援三種不同的儲存格式,分別是靜態型(預設儲存格式,欄位是固定長度的),動態型(包含我們的變長欄位,欄位的長度是不固定的)和壓縮型(用MyISAM的apache工具建立,它佔用的磁碟就比較小)

優點:佔用磁碟空間小,處理速度塊,插入讀取資料快

缺點:不支援事務。沒有事務的完整性,安全性以及事務的併發性處理

(三)MEMORY儲存引擎

特點:(1)儲存在記憶體中的內容來建立表,而且所有的資料也存放到我們的記憶體中(速度快)(2)基於MEMORY儲存引擎的表實際對應於一個磁碟檔案,檔名也和表名相同,型別也是fim型別。但是這個檔案中只儲存表的結構,資料儲存到記憶體中,這有利於對資料快速的處理。它可以提高表的速率。(3)伺服器需要足夠的記憶體來維持引擎的使用,使用完釋放掉

缺點:如果意外斷電或者出現異常,就可能影響資料的完整性。安全性不高,生命週期比較短,一次最好。不能建立太大的表

四、如何選擇合適的儲存引擎