mysql數據庫存儲引擎

一、插件式存儲引擎是 Mysql數據庫的特性之一,可經過以下命令查看默認的存儲引擎。mysql

mysql> show variables like 'default_storage_engine';
+------------------------+--------+
| Variable_name          | Value  |
+------------------------+--------+
| default_storage_engine | InnoDB |
+------------------------+--------+

可經過如下指令查看數據庫支持的存儲引擎,或使用 show variables like 'have%'sql

mysql> show engines \G
*************************** 1. row ***************************
      Engine: MyISAM
     Support: YES
     Comment: MyISAM storage engine
Transactions: NO
          XA: NO
  Savepoints: NO
*************************** 2. row ***************************
      Engine: InnoDB
     Support: DEFAULT
     Comment: Supports transactions, row-level locking, and foreign keys
Transactions: YES
          XA: YES
  Savepoints: YES
*************************** 3. row ***************************
      Engine: MRG_MYISAM
     Support: YES
     Comment: Collection of identical MyISAM tables
Transactions: NO
          XA: NO
  Savepoints: NO
*************************** 4. row ***************************
      Engine: PERFORMANCE_SCHEMA
     Support: YES
     Comment: Performance Schema
Transactions: NO
          XA: NO
  Savepoints: NO
*************************** 5. row ***************************
      Engine: CSV
     Support: YES
     Comment: CSV storage engine
Transactions: NO
          XA: NO
  Savepoints: NO
*************************** 6. row ***************************
      Engine: MEMORY
     Support: YES
     Comment: Hash based, stored in memory, useful for temporary tables
Transactions: NO
          XA: NO
  Savepoints: NO
6 rows in set (0.04 sec)

注:(1)mysqld 服務器維護兩種變量:全局變量影響服務器的全局操做。會話變量影響具體客戶端鏈接相關操做。服務器啓動後,經過鏈接服務器並執行SET GLOBAL var_name語句能夠更改動態全局變量。要想更改全局變量,必須具備SUPER權限。能夠經過SHOW VARIABLES語句查看系統變量及其值。服務器還爲每一個客戶端鏈接維護會話變量。鏈接時使用相應全局變量的當前值對客戶端會話變量進行初始化。客戶能夠經過SET SESSION var_name語句來更改動態會話變量。設置會話變量不須要特殊權限,但客戶能夠只更改本身的會話變量,而不更改其它客戶的會話變量。數據庫

(2)在sql語句後面加\G表示將查詢結果按列打印;\G爲大寫字母,不可以使用小寫;緩存

二、經常使用存儲安全

特色 Myisam BDB Memory InnoDB Archive
存儲限制 沒有 沒有 64TB 沒有
事務安全   支持   支持  
鎖機制 表鎖 頁鎖 表鎖 行鎖 行鎖
B樹索引 支持 支持 支持 支持  
哈希索引     支持 支持  
全文索引 支持        
集羣索引       支持  
數據緩存     支持 支持  
索引緩存 支持   支持 支持  
數據可壓縮 支持       支持
空間使用 N/A 很是低
內存使用 中等
批量插入的速度 很是高
支持外鍵       支持  

最常使用的2種存儲引擎:服務器

  • Myisam是Mysql的默認存儲引擎。當create建立新表時,未指定新表的存儲引擎時,默認使用Myisam。每一個MyISAM在磁盤上存儲成三個文件。文件名都和表名相同,擴展名分別是.frm(存儲表定義)、.MYD (MYData,存儲數據)、.MYI (MYIndex,存儲索引)。數據文件和索引文件能夠放置在不一樣的目錄,平均分佈io,得到更快的速度。   
  • InnoDB存儲引擎提供了具備提交、回滾和崩潰恢復能力的事務安全。可是對比Myisam的存儲引擎,InnoDB寫的處理效率差一些而且會佔用更多的磁盤空間以保留數據和索引。

三、ide

相關文章
相關標籤/搜索