2011-11-26 7 views
0

我的問題是關於共享宿主Linux服務器上的db類型。 phpMyAdmin顯示db有MyISAM類型。我認爲我不能改變它。我的意思是我不知道。 該數據庫中的所有表都具有InnoDB類型。 將數據庫類型更改爲InnoDB有意義嗎?我是不是該? (我不知道我是否可以在共享託管服務器上選擇數據庫類型)。 當然,如果可以,我可以聯繫客戶支持並要求他們進行切換,但我不知道它是否有意義並且有任何優點。MySQL共享主機:db是MyISAM,儘管所有創建的表都是InnoDB。我可以切換嗎?我是不是該?

我應該照顧它嗎?

謝謝enter image description here。 添加:上面的圖像是從phpMyAdmin截圖。

+0

您應該提及您的屏幕截圖來自phpmyadmin :-) –

回答

1

這是服務器的默認存儲引擎。如果創建表時未指定存儲引擎,那麼服務器將選擇MyISAM作爲默認值

例如,在我的服務器上,InnoDB是默認值。

mysql> show engines\G 
*************************** 1. row *************************** 
     Engine: InnoDB 
    Support: DEFAULT 
    Comment: Supports transactions, row-level locking, and foreign keys 
Transactions: YES 
      XA: YES 
    Savepoints: YES 

同樣在回答你的第二個問題。是的,您可以更改存儲引擎。您可以使用ALTER TABLE命令執行此操作。

ALTER TABLE mytable ENGINE=MYISAM; 

我建議不要更改存儲引擎,除非你有在發動機的特徵的特定需要。

+1

您是否建議保留託管提供商建議的默認存儲引擎,即使所有數據庫表都是InnoDB?我可以從一開始就重新創建數據庫和所有表格,因爲我還沒有有用的信息。謝謝。 – Haradzieniec

+0

是的,它很好。特別是如果服務器是共享的。默認引擎在MySQL版本之間改變。您的提供商不推薦特定的一個。使用你想要的存儲引擎(今天InnoDB可能是最好的選擇)。如果需要,還可以使用phpmyadmin更改存儲引擎。 –

1

您可能會誤解,數據庫沒有storage engine
存儲引擎用於表格。
您只能切換表的存儲引擎。

但是,myisam不支持事務性,
和innodb(mysql版本< 5.6)不支持全文搜索。

不知道哪個表在哪個數據庫中,我的猜測是
你不應該改變存儲引擎。

例子: -

http://demo.phpmyadmin.net/STABLE/index.php?lang=en&collation_connection=utf8_general_ci

底排在phpMyAdmin顯示是等價的: -

show create database YOUR_DATABASE; 

當你創建新表,而不指定存儲引擎,
默認數據庫上的存儲引擎類型將應用於它。

mysql version 5.5, default storage engine is change to innodb.

有更改數據庫的默認存儲引擎沒有直接的方法,你必須創建一個數據庫

的解決方法是創建一個新的數據庫與您所需的默認存儲引擎,
然後重命名畢竟這些表格當前駐留在該數據庫的現有數據庫中。

+1

當您說「不知道哪些數據庫在哪個數據庫中」時,您是什麼意思......以及爲什麼我在phpMyAdmin中看到MyISAM之後的總表數?那麼在這種情況下意味着什麼呢?謝謝。 – Haradzieniec

+0

屏幕截圖不顯示哪個數據庫中的表格。計數只是爲了讓你知道存儲引擎的表組總數 – ajreal

+0

@ajreal - 你錯了。 phpmyadmin顯示了MySQL服務器的默認存儲引擎。將鼠標懸停在該字段上並找到彈出式幫助。 –

相關問題