繁体   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