常用MySQL存儲引擎

一概述
存儲引擎,即表類型(table_type)
用戶可以根據應用的需求選擇如何來存儲數據、索引、是否使用事務等。選擇合適的存儲引擎往往能夠有效的提高數據庫的性能和數據的訪問效率,另外一個數據庫中的多個表可以使用不同引擎的組合以滿足各種性能和實際需求。
MySQL支持很多存儲引擎,包括MyISAM、InnoDB、BDB、MEMORY、MERGE、EXAMPLE、NDB Cluster、ARCHIVE等,其中InnoDB和BDB支持事務安全。

查看當前表使用的存儲引擎(或者通過右鍵--object information)
show create table sys_user;

查看當前數據庫支持的存儲引擎
show engines;

CREATE TABLE `sys_user` (
  `user_id` bigint NOT NULL AUTO_INCREMENT COMMENT '用戶ID',
  `dept_id` bigint DEFAULT NULL COMMENT '部門ID',
  `user_name` varchar(30) NOT NULL COMMENT '用戶賬號',
  `nick_name` varchar(30) NOT NULL COMMENT '用戶暱稱',
  `user_type` varchar(2) DEFAULT '00' COMMENT '用戶類型(00系統用戶)',
  `email` varchar(50) DEFAULT '' COMMENT '用戶郵箱',
  `phonenumber` varchar(11) DEFAULT '' COMMENT '手機號碼',
  `sex` char(1) DEFAULT '0' COMMENT '用戶性別(0男 1女 2未知)',
  `avatar` varchar(100) DEFAULT '' COMMENT '頭像地址',
  `password` varchar(100) DEFAULT '' COMMENT '密碼',
  `status` char(1) DEFAULT '0' COMMENT '帳號狀態(0正常 1停用)',
  `del_flag` char(1) DEFAULT '0' COMMENT '刪除標誌(0代表存在 2代表刪除)',
  `login_ip` varchar(50) DEFAULT '' COMMENT '最後登陸IP',
  `login_date` datetime DEFAULT NULL COMMENT '最後登陸時間',
  `create_by` varchar(64) DEFAULT '' COMMENT '創建者',
  `create_time` datetime DEFAULT NULL COMMENT '創建時間',
  `update_by` varchar(64) DEFAULT '' COMMENT '更新者',
  `update_time` datetime DEFAULT NULL COMMENT '更新時間',
  `remark` varchar(500) DEFAULT NULL COMMENT '備註',
  PRIMARY KEY (`user_id`)
) ENGINE=InnoDB AUTO_INCREMENT=105 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='用戶信息表'


常用的存儲引擎和各自的優缺點以及應用場景
1. MyISAM
它是MySQL5.5之前的默認存儲引擎
優勢:訪問速度快
適用場景:對事務的完整性沒有要求,或以select、insert爲主的應用基本都可以選用MYISAM。在Web、數據倉庫中應用廣泛。
特點:
1、不支持事務、外鍵
2、每個myisam在磁盤上存儲爲3個文件,文件名和表名相同,擴展名分別是
.frm    -------存儲表定義
.MYD   --------MYData,存儲數據
.MYI    --------MYIndex,存儲索引
數據文件和索引文件可以放在不同的目錄,平均分佈IO,加快訪問速度,在創建表的時候通過 data directory和index directory來指定存儲路徑;

2. InnoDB
MySQL5.5之後的默認存儲引擎
應用場景:如果應用對事務的完整性有較高的要求,在併發條件下要求數據的一致性,數據操作中包含增刪改查,那麼可以選擇InnoDB;
優點:提供了具有提交(Commit)、回滾(Rollback)、崩潰恢復能力的事務安全機制,支持外鍵.
缺點:相比較於MyISAM,寫的處理效率差一點,並且會佔用更多的磁盤空間來存儲數據和索引.

3. MEMORY
MEMORY存儲引擎是用保存在內存中的數據來創建表,每個memory表對應一個磁盤文件。格式是.frm
特點:由於他的數據是存放在內存中的,並且默認使用HASH索引,所以它的訪問速度特別快,同時也造成了他的缺點,就是數據庫服務一旦關閉,數據就會丟失,另外對錶的大小有限制

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章