溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

MySQL存儲引擎分類及操作介紹

發(fā)布時間:2020-06-01 15:12:52 來源:網(wǎng)絡(luò) 閱讀:180 作者:三月 欄目:MySQL數(shù)據(jù)庫

不知道大家之前對類似MySQL存儲引擎分類及操作的文章有無了解,今天我在這里給大家再簡單的講講。感興趣的話就一起來看看正文部分吧,相信看完MySQL存儲引擎分類及操作你一定會有所收獲的。 

MySQL存儲引擎

一種存儲機(jī)制、根據(jù)不同的引擎實現(xiàn)不同的功能,以及不同的性能

1.存儲引擎分類

  • MyISAM:MySQL 5.0 之前的默認(rèn)數(shù)據(jù)庫引擎,最為常用。擁有較高的插入,查詢速度,但不支持事務(wù)。表級鎖定:數(shù)據(jù)更新時會鎖定整張表。占用資源少,性能高。寫入性能弱
  • InnoDB:事務(wù)型數(shù)據(jù)庫的首選引擎,支持ACID事務(wù),支持行級鎖定, MySQL 5.5 起成為默認(rèn)數(shù)據(jù)庫引擎。與MyISAM相比有更好的緩存支持,支持表空間、表分區(qū)、占用硬件資源較高。

  • BDB:源自 Berkeley DB,事務(wù)型數(shù)據(jù)庫的另一種選擇,支持Commit 和Rollback 等其他事務(wù)特性
  • Memory:所有數(shù)據(jù)置于內(nèi)存的存儲引擎,擁有極高的插入,更新和查詢效率。但是會占用和數(shù)據(jù)量成正比的內(nèi)存空間。并且其內(nèi)容會在 MySQL 重新啟動時丟失
  • Merge:將一定數(shù)量的 MyISAM 表聯(lián)合而成一個整體,在超大規(guī)模數(shù)據(jù)存儲時很有用
  • Archive:非常適合存儲大量的獨立的,作為歷史記錄的數(shù)據(jù)。因為它們不經(jīng)常被讀取。Archive 擁有高效的插入速度,但其對查詢的支持相對較差
  • Federated:將不同的 MySQL云服務(wù)器聯(lián)合起來,邏輯上組成一個完整的數(shù)據(jù)庫。非常適合分布式應(yīng)用
  • Cluster/NDB:高冗余的存儲引擎,用多臺數(shù)據(jù)機(jī)器聯(lián)合提供服務(wù)以提高整體性能和安全性。適合數(shù)據(jù)量大,安全和性能要求高的應(yīng)用
  • CSV: 邏輯上由逗號分割數(shù)據(jù)的存儲引擎。它會在數(shù)據(jù)庫子目錄里為每個數(shù)據(jù)表創(chuàng)建一個 .csv 文件。這是一種普通文本文件,每個數(shù)據(jù)行占用一個文本行。CSV 存儲引擎不支持索引。
  • BlackHole:黑洞引擎,寫入的任何數(shù)據(jù)都會消失,一般用于記錄 binlog 做復(fù)制的中繼
  • EXAMPLE 存儲引擎是一個不做任何事情的存根引擎。它的目的是作為 MySQL 源代碼中的一個例子,用來演示如何開始編寫一個新存儲引擎。同樣,它的主要興趣是對開發(fā)者。EXAMPLE 存儲引擎不支持編索引。

另外,MySQL 的存儲引擎接口定義良好。有興趣的開發(fā)者可以通過閱讀文檔編寫自己的存儲引擎 。

2.引擎操作

(1)查看
mysql> show engines;                        //查看當(dāng)前數(shù)據(jù)庫所有支持的存儲引擎

mysql> show table status from 庫名 where name='表名'\G;     //查看指定表的狀態(tài)信息,可查看表使用的存儲引擎

mysql> show create table 表名\G;              //查看創(chuàng)建表時的結(jié)構(gòu),也可查看表創(chuàng)建時指定的存儲引擎
(2)更改
(2.1)更改默認(rèn)存儲引擎(下次創(chuàng)建表時生效,以前表存儲引擎不會更改)
vim /etc/my.cnf
[mysqld]

default-storage-engine=引擎

/etc/init.d/mysqld restart

mysql -u root -p

mysql> show engines;                        //驗證是否更改
(2.2)更改現(xiàn)有表的存儲引擎
mysql> alter table 表名 engine=引擎;                //將指定表更改為指定的存儲引擎
(2.3)創(chuàng)建表時指定存儲引擎
mysql> create table 表名 字段 engine=引擎;            //創(chuàng)建使用指定引擎的表
(2.4)批量將指定庫下所有表的InnoDB改為MyISAM
yum -y install perl-DBD-MySQL       //安裝命令所需的軟件包 

mysql_convert_table_format --user=用戶名 --password='密碼' --socket=/tmp/mysql.sock --type=MyISAM 數(shù)據(jù)庫名           //更改指定庫下的所有表的存儲引擎;適用于源碼

mysql_convert_table_format --user=用戶名 --password='密碼' --socket=/var/lib/mysql/mysql.sock --type=MyISAM 數(shù)據(jù)庫名         //更改指定庫下的所有表的存儲引擎;適用于RPM或YUM

注:mysql_convert_table_format命令只能從InnoDB引擎更改為MyISAM

看完MySQL存儲引擎分類及操作這篇文章,大家覺得怎么樣?如果想要了解更多相關(guān),可以繼續(xù)關(guān)注我們的行業(yè)資訊板塊。

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI