[精讚] [會員登入]
3949

[Mysql/MariaDB] 表格的引擎 (engine):查看及修改

MySQL表格引擎預設為 MyISAM,但在4.0以上的mysql 其實支援不只一種引擎,各有優缺點,這篇介紹引擎的操作。

分享此文連結 //n.sfs.tw/10656

分享連結 [Mysql/MariaDB] 表格的引擎 (engine):查看及修改@新精讚
(文章歡迎轉載,務必尊重版權註明連結來源)
2019-10-24 17:50:35 最後編修
2017-01-22 22:46:01 By 張○○
 

自動目錄

MySQL 表格格式預設為 MyISAM,但在4.0以上的mysql 其實支援不只一種型態,我們用以下指令來看看有哪些型態

查看系統支援的引擎種類

[5.0]
SHOW VARIABLES LIKE 'have%' ;

[5.0~5.5]
SHOW ENGINES; 


5.0 SHOW VARIABLES LIKE 'have%' ;畫面


5.0 Show engines畫面


5.5 show engines畫面

查看預設引擎

> show variables like '%engine%'

修改預設引擎

修改my.cnf

[mysqld]
default-storage-engine = myisam

重新啟動

修改表格引擎

如果我們的表格是 MyISAM ,想要更改為 InnoDB,則使用 alter的語法:
> ALTER TABLE 表格名 TYPE=InnoDB

新版的Mysql 語法
> ALTER TABLE 表格名 ENGINE=InnoDB

記憶體型
> ALTER TABLE tbl_name ENGINE = MEMORY

如果 MyISAM  原本有全文索引,則轉換會失敗,得先移除全索
> ALTER TABLE 表格名 DROP INDEX 索引名

至於 MyISAM 和 InnoDB 的優劣,相信很多文章,我只簡單結論一下:

屬性 MyISAM InnoDB
速度 SELECT 相似 相似
速度 UID 極慢 *
空間利用 可能 2 倍於 MyISAM
記憶體 較好 較差
檔案 每個表是獨立檔案 全部表放在一個tablespace,由多個檔案組成
全索 不可
關聯** 不可
交易Transaction 較麻煩只可TABLE LOCK 較易 可達 ROW LOCK,自動偵測死鎖

* 同事瑩光說時間大概差了18倍

參考資料

[1] https://dev.mysql.com/doc/refman/5.7/en/storage-engine-setting.html


原文 2009-12-26 00:39:08

END

你可能感興趣的文章

[Mysql/MariaDB] 修改資料庫、表格或欄位名稱 Mysql/MariaDB修改資料庫、表格或欄位名稱

[phpmyadmin] 登錄超時 (1440 秒未操作),請重新登錄 phpmyadmin登錄超時 (1440 秒未操作),請重新登錄的問題,該如何解決?

[mysqldump] Mysqldump時出現記憶體錯誤Out of memory 當進行 mysqldump 時出現 Out of memory (Needed xxxxx bytes) 的錯誤,該如何處理?

[Mysql/MariaDB] 查看資料庫所占空間 查看資料庫在磁碟中所占空間

[MYSQL] 設定字串欄位的預設值 新增表格的時候,字串欄位給予預設空值;數字欄位給預設數值;日期欄位給空值。

[Mysql/MariaDB] 使用 LOCATE, POSITION, INSTR來取代 like [Mysql/MariaDB中使用LOCATE, POSITION, INSTR來取代 like的方法

隨機好文

[Windows7] 移除IE10及移除IE11 Windows7 不得已的情況要移除IE11或IE10怎麼做?

[AS3] 我做的唯一一個Flash As3遊戲UFO INVADSION [AS3] 我做的唯一一個Flash As3遊戲,是第一個也是最後一個,後來就沒再寫as3,不過as3還滿好玩的。

[PHP] 檢查檔案是否是圖檔 使用getimagesize函數檢查檔案是否是圖檔

正則表達式:Email名稱防止連續輸入點(.)及下底線(_) Email的名稱中要允許特殊符號,但又不允許連續出現的正則表達式

最值得學的電腦技能 什麼是最值得學的電腦技能?程式設計?美工繪圖?系統網路?還是…? 都不是!個人覺得一個最值得學的電腦技能就