查看MySQL數據庫中創建表的信息
如上圖所示,當我們使用命令show create table server_info\G;可以顯示我們所創建的表的信息,只顯示兩個字段,第一個字段是Table 即是創建的表的名稱,第二個字段是Create Table即是創建的表的字段的信息,以及所創建的表所使用的存儲引擎是什么存儲引擎,默認情況下engine是InnoDB。
其中的ENGINE=InnoDB? 其中的InnoDB是MySQL數據庫所支持的一個存儲引擎名稱,
介紹MySQL中的存儲引擎storage engine
storage是存儲的意思。
engine是引擎的意思。
車里面的引擎是可以更換的,不同的引擎代表不同的性能,那么在MySQL數據庫中存儲引擎也是可以更換的,在MySQL軟件上使用不同的引擎代表的是支持不同的功能,
如上圖所示,可以使用命令show engines;
來查看機器上的MySQL軟件上支持那些存儲引擎。
如上圖所示,可以看到當前MySQL軟件default默認支持InnoDB這樣的搜索引擎,
表中的Comment這一列中的信息,表明了不同搜索引擎,所支持的不同功能特性。
存儲引擎功能介紹
1.InnoDB這樣的存儲引擎,?Supports transactions, row-level locking, and foreign keys?
第一個所支持的功能特性是transactions——事務
第二個所支持的功能特性是row-level locking——外接
第三個所支持的功能特性是foreign keys ——行級鎖
行級鎖涉及到鎖粒度問題:分別是表級鎖和行級鎖,也就是說當我們使用表級鎖的時候整個表的數據是不能夠被修改的,當我們使用行級鎖的時候整一行的數據是不能被做修改的。
?2.MEMORY(內存)這樣的存儲引擎,?Hash based, stored in memory, useful for temporary tables?
如果將來把MySQL數據庫的存儲引擎改成MEMORY,則將來在往數據庫中存儲數據的時候,只會將數據存往內存里面,不會將數據存往硬盤里面,特點是速度快,應用場景是臨時數據,
?3.BLACKHOLE? ?(黑洞)? ? ? ?| YES ? ? | /dev/null storage engine (anything you write to it disappears)
使用這個存儲引擎的時候,存入的數據都會消失。
這樣的存儲引擎在MySQL主從復制的場景會有特殊的應用,
?4.MyISAM? ? 這個存儲引擎在查詢數據的速度快,?| MyISAM storage engine ? ? ?
?5.MRG_MYISAM ? ? ? ? | YES ? ? | Collection of identical MyISAM tables ? ? ? ? ? ? ?
這個存儲引擎支持將多個MyISAM表進行合并。
6.CSV這個存儲引擎一般適用于數據分析行業。
7.ARCHIVE一般適用于做數據挖掘的工作。
如何修改MySQL數據庫的存儲引擎?
如上圖所示,可以在MySQL的配置文件中加上? default_storage_engine ,這行配置的作用就是用來修改MySQL數據庫的搜索引擎的,
在Linux操作系統上使用vim /etc/my.cnf
去在文件中加上default_storage_engine? 這樣一個配置就能成功修改MySQL數據庫的默認存儲引擎,
如上圖所示,想要什么樣的存儲引擎就使用default_storage_engine =想要使用的存儲引擎。
如上圖所示,在重新設置MySQL數據庫的存儲引擎之后,需要在Linux操作系統中使用命令systemctl restart mysql即重新啟動mysql系統,
具體查看MySQL軟件上的存儲引擎的辦法有兩種
第一種方法
如上圖所示,可以使用show engines;
來顯示當前MySQL軟件上所支持的默認存儲引擎是哪個。
第二種方法,
如上圖所示,可以使用命令select @@default_storage_engine;
來查看/etc/my.cnf文件中關于MySQL軟件default_storage_engine的默認支持存儲引擎的一個信息。
如上圖所示,如果修改數據庫的存儲引擎后,那么先前創建的表的存儲引擎都是修改之前的,之后創建的表的存儲引擎都是修改之后的存儲引擎。
如上圖所示,server_info.frm文件是server_info表的表結構文件,這個文件中所儲存的是這個表的字段名,字段數據類型,這樣的信息。
server_info.ibd文件所儲存的是server_info表中所儲存的真實數據。以及我在這個表中所創建的索引信息。
如上圖所示,如果MySQL數據庫的存儲引擎是MyISAM,那么表現在Linux操作系統中就是frm文件——表結構文件,MYD文件——文件所儲存的是表中的真實數據,MYI文件所儲存的是表的索引信息。
索引——目錄