2012-04-23 170 views
22

如何數據庫存儲引擎從InnoDB轉換爲MyISAMMySQL的? 我發現很多網站轉換數據庫表的存儲引擎,但不是數據庫。 i attached screen shot for better understand的MySQL - InnoDB的轉換對MyISAM存儲引擎數據庫

在此先感謝。

+0

你的意思是你已經嘗試過這個? [http://dev.mysql.com/doc/refman/5.0/en/converting-tables-to-innodb.html](http://dev.mysql.com/doc/refman/5.0/en/converting- tables-to-innodb.html) – 2012-04-23 12:53:50

+0

我想轉換數據庫不是表格。你給的這個鏈接是用於轉換表格的不是數據庫 – 2012-04-23 13:27:48

+0

如果這個問題有幫助,你也可以upvote也不只答案... – 2013-03-14 07:20:38

回答

11

您無法更改數據庫的默認存儲引擎,但可以使用default-storage-engine配置設置更改整個服務器。請注意,這實際上並不會改變現有表的存儲引擎,只是爲了在更改後創建新的存儲引擎。

+0

感謝您的答案,它可以幫助我,並很抱歉,遲到的答覆。 – 2013-03-07 13:22:49

8

數據庫只是MySQL執行名稱空間的方式,因爲數據庫沒有與其關聯的引擎,只有表具有存儲引擎。這就是爲什麼你可以擁有一個數據庫,每個數據庫有不同的引擎。

您必須逐個修改每個表以將其切換到InnoDB。

12
ALTER TABLE `table_name` ENGINE=INNODB 
35

使用此!

SET storage_engine=MYISAM; 
ALTER TABLE table_name ENGINE = MyISAM; 

-cheers !!

+0

我想將InnoDB轉換爲數據庫非表的MyISAM存儲引擎。 – 2013-10-09 10:44:49

+2

謝謝。這節省了我很多時間。當我在運行MySQL(mariadb)的Raspberry PI上執行此操作時,系統在執行大插入或更新時最終停止了鎖定。速度快了10倍 – 2016-07-05 15:15:23

3

使其永久,添加到my.cnf文件(由具體情況決定幾個位置)

的/etc/my.cnf

default-storage-engine= MyISAM

爲了安全,輸出分貝清單, 秀數據庫;

在我的情況下,使用PHP匆匆..

$db = mysql_connect('localhost','someadmin','somepass'); 
$dbs = array(); 
$dbs[] = 'test'; 
$dbs[] = 'myImportantDb'; 

foreach($dbs as $v){ 
    mysql_select_db($v); 
    $q = mysql_query('show tables'); 
    $tables = array(); 
    while($r = mysql_fetch_row($q)){ 
      $tables[] = $r[0]; 
    } 
    foreach($tables as $t){ 
     echo "do $v.$t\n"; 
     mysql_query('ALTER TABLE `'.$t.'` ENGINE=MyISAM;'); 
    } 
} 
mysql_close($db); 
1

在phpMyAdmin 4.5 選擇變量選項卡,並找到 存儲引擎 並選擇編輯和類型的MyISAM。

相關問題