[精讚] [會員登入]
4008

[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] 使用union合併兩個表 mysql合併兩個表的方法,使用union

[Docker] Mariadb-Galera出現Incorrect definition of table mysql.column_stats:'hist_type'及 'histogram' 使用docker的Mariadb-galera出現'hist_type'及 'histogram'型別錯誤的解決方法。

[MySQL/Mariadb] 正規表達式(regular express) mysql的正規表達式很詭異,很不能接受

[Mysql/Mariadb] Left Join 和 Right Join 合併表單 SQL語法中的 Left Join 和 Right Join 很常用,但是我常會忘記,所以寫下來備忘。

[Mysql/MariaDB] 加解密函數 Mysql/MariaDB上的加解密函數

[MySQL] FIND_IN_SET函數,把多筆條件判斷弄成字串 SQL 我們如果要查找某個欄位是否為某個值的時候,如果要判斷的條件很多,可以用這個函數

隨機好文

NETCRAFT發現你的網站及作業系統 NETCRAFT可以發現你的網站及作業系統

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

外匯課程經驗 有天遇到某個朋友的正妹朋友,說她有個很棒的外匯投資課程,要我們去聽,只收場地費200大洋。她又說續效最差一個月也有1%,誰還在苦哈哈上班?

海棉寶寶超泡杯演奏的sweet victory 章魚哥和海棉寶寶在超泡杯的演奏歌曲

[大型機台] 熱血高校躲避球 多少少年時光歲月耗在這個遊戲上,二十幾年前的那個時光,唯一想做的事就是把吃飯錢省下來拿去打一場五塊錢的電動,就算是沒錢也