[精讚] [會員登入]
3466

[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] 設定字串欄位的預設值 新增表格的時候,字串欄位給予預設空值;數字欄位給預設數值;日期欄位給空值。

[Mysql] Mysqldump 的預設編碼 --default-character-set 有時Mysqldump 也得要指定編碼才不會造成匯出的亂碼

[Mysql] 使用union合併兩個表 mysql合併兩個表的方法,使用union

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

Mysql INSERT ... ON DUPLICATE KEY UPDATE 寫法 Mysql有則修改,無則新增的sql寫法

[Mysql] Trigger 觸發使用方法 trigger 在資料庫的使用上,具有極大的方便性,該如何使用?

我有話要說

>>

限制:留言最高字數1000字。 限制:未登入訪客,每則留言間隔需超過10分鐘,每日最多5則留言。

訪客留言

[無留言]

隨機好文

[jQuery] 利用load()來達成ajax的寫法 jQuery中利用load()來達成ajax的寫法,也有人稱他是假的ajax,作法就是..

UTF-8 BOM (Byte Order Mark) 的問題 在 Michael Kaplan 那看到 Every character has a story #4: U+feff

安裝SPHINX支援中文 新版本的 sphinx 和舊版不同,網路上很多範例和教學是不能用的。此文是安裝和設定方法分享

[札記] 2016.7~12月札記 札記,只是札記

[JAVA] JWS, JWT, JWE, JOSE是什麼? [JAVA] JWS, JWT, JWE, JOSE是什麼?非常的複雜,儘量來搞清楚..