MySQL學習【第九篇存儲引擎】
阿新 • • 發佈:2019-03-24
engine clust 行鎖 類型 str blackhole sel ODB 更多
一.存儲引擎介紹
1.我們知道mysql程序構成由連接層,sql層,存儲引擎層。存儲引擎層和磁盤進行交互,由其去取數據,而我們取得數據是表的形式展現出來,誰做的呢?就是存儲引擎結構化成表的形式返回給用戶。
2.我們都知道什麽是文件系統(操作系統組織和存儲數據的一種機制,一種軟件),文件系統類型有許多種(xfs,ext2等),而存儲引擎則類似於文件系統,不過功能更多,不僅僅用於提供基本的存取功能,還有更多功能事務功能、鎖定、備份和恢復、優化、故障恢復以及特殊功能
二.MySQL自帶的存儲引擎類型
1.MySQL 提供以下存儲引擎:
01)InnoDB (行鎖:改表中某一行的時候,不影響別人改其他行) 02)MyISAM (表鎖:改表中任一數據時,別人都不能用)
03)MEMORY
04)ARCHIVE
05)FEDERATED
06)EXAMPLE
07)BLACKHOLE
08)MERGE
09)NDBCLUSTER
10)CSV
2.還可以使用第三方存儲引擎:
01)MySQL當中插件式的存儲引擎類型
02)MySQL的兩個分支
03)perconaDB
04)mariaDB
3.查看自己是啥存儲引擎
#查看當前MySQL支持的存儲引擎類型 mysql> show engines #查看innodb的表有哪些 mysql> select table_schema,table_name,engine frominformation_schema.tables where engine=‘innodb‘; #查看myisam的表有哪些 mysql> select table_schema,table_name,engine from information_schema.tables where engine=‘myisam‘;
4.innodb和myisam的區別
#進入mysql目錄 [root@db01~l]# cd /application/mysql/data/mysql #查看所有user的文件 [root@db01 mysql]# ll user.* -rw-rw---- 1mysql mysql 10684 Mar 6 2017 user.frm -rw-rw---- 1 mysql mysql 960 Aug 14 01:15 user.MYD -rw-rw---- 1 mysql mysql 2048 Aug 14 01:15 user.MYI #進入word目錄 [root@db01 world]# cd /application/mysql/data/world/ #查看所有city的文件 [root@db01 world]# ll city.* -rw-rw---- 1 mysql mysql 8710 Aug 14 16:23 city.frm -rw-rw---- 1 mysql mysql 688128 Aug 14 16:23 city.ibd
5.innodb存儲引擎在MySQL5.5版本之後,默認的存儲引擎,提供高可靠性和高性能。
innodb的核心特性:MVCC,事務,行級鎖,熱備份,Crash Safe Recovery(自動故障恢復)
6.查看自身的默認存儲引擎
SELECT @@default_storage_engine;
7.查看表的存儲引擎
SHOW CREATE TABLE City\G SHOW TABLE STATUS LIKE ‘CountryLanguage‘\G
8.使用 INFORMATION_SCHEMA 確認每個表的存儲引擎
SELECT TABLE_NAME, ENGINE FROM ?INFORMATION_SCHEMA.TABLES?WHERE TABLE_NAME = ‘City‘?AND TABLE_SCHEMA = ‘world‘\G
9.存儲引擎的設置
在啟動配置文件中設置服務器存儲引擎
#在配置文件的[mysqld]標簽下添加
[mysqld]
default-storage-engine=<Storage Engine>
使用 SET 命令為當前客戶機會話設置
#在MySQL命令行中臨時設置
SET @@storage_engine=<Storage Engine>
在 CREATE TABLE 語句指定
#建表的時候指定存儲引擎
CREATE TABLE t (i INT) ENGINE = <Storage Engine>;
MySQL學習【第九篇存儲引擎】