簡體   English   中英

MySQL共享主機:db是MyISAM,盡管所有創建的表都是InnoDB。 我可以換嗎? 我是不是該?

[英]MySQL shared hosting: db is MyISAM, although all created tables are InnoDB. Can I switch? Should I?

我的問題是關於共享主機Linux服務器上的db類型。 phpMyAdmin顯示db具有MyISAM類型。 我認為我不能改變它。 我的意思是我不知道。 該數據庫中的所有表都具有InnoDB類型。 將db類型更改為InnoDB是否有意義? 我是不是該? (我不知道我是否可以在共享托管服務器上選擇數據庫類型)。 當然,我可以聯系客戶支持並要求他們切換,如果他們可以,但我不知道它是否有任何意義,並有任何專業人士。

我應該好好照顧嗎?

謝謝 在此輸入圖像描述 補充:上面的圖片是phpMyAdmin的截圖。

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

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

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

示例: -

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

在phpmyadmin中顯示的底行相當於: -

show create database YOUR_DATABASE;

在未指定存儲引擎的情況下創建新表時
數據庫上的默認存儲引擎類型將應用於它。

對於mysql 5.5版,默認存儲引擎更改為innodb。

創建數據庫后,沒有直接的方法來更改數據庫默認存儲引擎

解決方法是使用您所需的默認存儲引擎創建一個新數據庫,
然后將當前駐留在現有數據庫中的所有表重命名為此數據庫。

這是服務器的默認存儲引擎。 如果在創建表時未指定存儲引擎,則服務器會選擇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;

我建議不要更改存儲引擎,除非您特別需要引擎中的功能。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM