[精讚] [會員登入]
3926

[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] 查看資料表狀態 要看資料表的狀態,不是結構喔,以前我都會用 procedure analyse(): SELECT `colname`

[Mysql/Mariadb] 忘記root密碼 常常會忘記root 密碼,簡單的幾步驟回復

[Mysql/Mariadb] 密碼設定強度修改 新的mysql對於密碼預設也把原來的規則改得更嚴格,此篇教你修改密碼的設定政策

[Mysql/Mariadb] 查看使用狀態,抓出可疑慢查詢SQL 當Mysql 的負載loading飆高時,除了重新啟動外,如果想對症下藥,那該怎麼處理?

[Mysql/MariaDB] 使用Memory引擎修改及設定最大值的方法 Mysql/MariaDB 使用Memory引擎預設是16MB,修改及設定最大值的方法。

隨機好文

[MAC] 截取螢幕畫面的方法 截取螢幕畫面的方法,在MAC中叫作螢幕快照,英文是screenshot

SELinux 常用指令和檔案 在Redhat系列中,Centos5以後加入了selinux,他並沒有這麼可怕,不必每次看到Selinux ,就想把他

Linux shell 的date表示法 linux下SHELL中的date表示法

[PHP] 檢查IP是否在某個網段內 mtachcidr 要檢查IP是否在某個網段內,要寫幾行?10行?5行? 不用,只要2行。以下是我寫的 code /** * matchCI

[CodeIgniter 3] 資料庫的使用方法整理2/2 CI3 承襲 CI2,有很多的builder class可以用,依各人的使用習慣,有人喜歡一堆sql字串,有人喜歡用helper