繁体   English   中英

使用ALTER进行表优化(MySql)

[英]Using ALTER for Table Optimization (MySql)

ALTER TABLE [tbl_name] TYPE=innodb

我刚刚读过某个地方,使用上面的alter table语句将优化现有表。 我不是很确定是否可以使用,如果可以,即使表类型已经是InnoDB,也可以使用吗?

InnoDB的:

MySQL中的InnoDB存储引擎。

  • 支持交易(使您支持ACID属性)。
  • 行级锁定。 与MyISAM相比,拥有更细粒度的锁定机制可为您提供更高的并发性。
  • 外键约束。 让您让数据库确保数据库状态以及表之间关系的完整性。
  • InnoDB比MyISAM更能抵抗表损坏。
  • 支持用于数据和索引的大型缓冲池。 MyISAM密钥缓冲区仅用于索引。
  • 另一点是MyISAM停滞不前。 所有未来的增强功能都将在InnoDB中

InnoDB的局限性:

  • 没有全文索引(低于5.6的mysql版本)
  • 无法压缩为快速,只读

有关此的更多信息:

如果您的数据库已经是innoDB,则无需再次执行该语句。 至于其他建议,则应使用ENGINE而不是TYPE。

ALTER TABLE `table_name` ENGINE = InnoDB;

我不确定是否要优化现有表,但可以更正您的查询。

ALTER TABLE `mytable` ENGINE = InnoDB;

使用ENGINE关键字,因为不再支持TYPE

从MySQL 5.1.8开始,TYPE = engine_name仍被接受为ENGINE = engine_name表选项的同义词,但会生成警告。 您应该注意,该选项在MySQL 5.1.7中不可用,并且在MySQL 5.5中已被完全删除并产生语法错误。

在那之后,您的查询应该工作并更改现有表的引擎。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM