MySQL共享主机:db是MyISAM,尽管所有创建的表都是InnoDB。我可以换吗?我是不是该?

时间:2011-11-26 00:29:03

标签: mysql database innodb shared-hosting myisam

我的问题是关于共享主机Linux服务器上的db类型。 phpMyAdmin显示db具有MyISAM类型。我认为我不能改变它。我的意思是我不知道。 该数据库中的所有表都具有InnoDB类型。 将db类型更改为InnoDB是否有意义?我是不是该? (我不知道我是否可以在共享托管服务器上选择数据库类型)。 当然,我可以联系客户支持并要求他们切换,但我不知道它是否有任何意义,并且有任何优点。

我应该照顾它吗?

谢谢enter image description here。 补充:上面的图片是phpMyAdmin的截图。

2 个答案:

答案 0 :(得分: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;

在未指定存储引擎的情况下创建新表时,
数据库上的默认存储引擎类型将应用于它。

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

创建数据库后,没有直接的方法来更改数据库默认存储引擎

解决方法是使用您所需的默认存储引擎创建一个新数据库 然后将当前驻留在现有数据库中的所有表重命名为此数据库。

答案 1 :(得分: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;

我建议不要更改存储引擎,除非您特别需要引擎中的功能。