表在資料庫中的存儲方式。 存儲引擎只存在mysql中,(Oracle中有對應機制,但是不叫存儲引擎)。 完整的建表語句: CREATE TABLE mytable( id INT(10) PRIMARY KEY, username VARCHAR(30) NOT NULL, PASSWORD VAR ...
表在資料庫中的存儲方式。
存儲引擎只存在mysql中,(Oracle中有對應機制,但是不叫存儲引擎)。
完整的建表語句:
CREATE TABLE mytable( id INT(10) PRIMARY KEY, username VARCHAR(30) NOT NULL, PASSWORD VARCHAR(30) )ENGINE = InnoDB Default CAHRSET=UTF8;
註意:在MYSQL當中,凡是標識符可以使用飄號括起來,最好別用,不通用!
建表的時候可以指定存儲引擎,也可以指定字元集。
mysql預設的存儲引擎是InnoDB的方式!預設採用的字元集是UFT-8
mysql> show engines \G #查看當前,mysql版本支持的存儲引擎命令! 當前MYSQL版本是5.7.33,支持9種存儲引擎!
1.常見的存儲引擎:
- MyISAM 存儲索引
- InnoDB 存儲索引
- MEMORY 存儲索引
2.MyISAM 存儲引擎:
MyISAM:這種存儲引擎不支持事務。是最常用的但不是預設的
Engine: MyISAM Support: YES Comment: MyISAM storage engine Transactions: NO #不支持事務! XA: NO Savepoints: NO
它管理的表具有以下特征:
使用三個文件表示每個表 :
- 格式文件 — 存儲表的結構(mytable.frm)
- 數據文件 — 存儲表的數據(mytable.MYD)
- 索引文件 — 存儲表中索引的文件(mytable.MYI)
優點:可被轉換為壓縮,來節省空間,並且可以轉換為只讀表,提高檢索效率!
缺點:不支持事務!
3.InnoDB 存儲引擎:
支持事務,行級鎖,外鍵等 ;這種存儲引擎安全。
Engine: InnoDB Support: DEFAULT Comment: Supports transactions, row-level locking, and foreign keys Transactions: YES XA: YES Savepoints: YES
- 表的結構存儲在xxx.frm文件當中
- 數據存儲在tablespace這樣的表空間當中(邏輯概念),無法被壓縮,無法被轉換為只讀!
- 這種InnoDB存儲引擎在MYSQL資料庫崩潰之後提供自動恢復機制!【事務、安全、重量級】
- 支持級聯刪除和級聯更新。
4.MEMORY 存儲引擎:
所有數據保存在記憶體中,斷電即失,但是查詢速度超級快!
Engine: MEMORY Support: YES Comment: Hash based, stored in memory, useful for temporary tables Transactions: NO XA: NO Savepoints: NO
- 在資料庫目錄當中,每個表均已.frm格式的文件表示
- 表數據以及索引被存儲在記憶體當中
- 表級鎖機制
- 不能包含TEXT(CLOB)或BLOB欄位
- 查詢速度快
本文來自博客園,作者:腹白,轉載請註明原文鏈接:https://www.cnblogs.com/wyh518/