最新文章专题视频专题问答1问答10问答100问答1000问答2000关键字专题1关键字专题50关键字专题500关键字专题1500TAG最新视频文章推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37视频文章20视频文章30视频文章40视频文章50视频文章60 视频文章70视频文章80视频文章90视频文章100视频文章120视频文章140 视频2关键字专题关键字专题tag2tag3文章专题文章专题2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章专题3
当前位置: 首页 - 科技 - 知识百科 - 正文

MySQL如何选择合适的引擎以及进行引擎的转换

来源:动视网 责编:小采 时间:2020-11-09 08:46:15
文档

MySQL如何选择合适的引擎以及进行引擎的转换

MySQL如何选择合适的引擎以及进行引擎的转换:我们怎么选择合适的引擎?这里简单归纳一句话:除非需要用到某些InnoDB不具备的特性,并且没有其他办法可以替代,否则都应该优先选择InnoDB引擎。 除非万不得已,否则不建议混合使用多种存储引擎,否则可能带来一系列复杂的问题以及一些潜在的BUG。使
推荐度:
导读MySQL如何选择合适的引擎以及进行引擎的转换:我们怎么选择合适的引擎?这里简单归纳一句话:除非需要用到某些InnoDB不具备的特性,并且没有其他办法可以替代,否则都应该优先选择InnoDB引擎。 除非万不得已,否则不建议混合使用多种存储引擎,否则可能带来一系列复杂的问题以及一些潜在的BUG。使


我们怎么选择合适的引擎?这里简单归纳一句话:“除非需要用到某些InnoDB不具备的特性,并且没有其他办法可以替代,否则都应该优先选择InnoDB引擎。”

除非万不得已,否则不建议混合使用多种存储引擎,否则可能带来一系列复杂的问题以及一些潜在的BUG。

使用不同引擎考虑的几大因素:

1.事务

如果需要事务支持,那么InnoDB或者XtraDB目前最稳定。如果不需要事务且主要是SELECT和INSERT操作,MyISAM是不错的选择。

2.备份

如果需要在线热备份,InnoDB是基本的选择。

3.崩溃恢复

数据量比较大的时候,系统崩溃后如何快速恢复是一个需要考虑的问题,这也是许多人即使不需要事务支持也选择InnoDB的原因。

转换表的引擎:

1.ALTER TABLE

最简单的方法就是ALTER TABLE语句:

 mysql> ALTER TABLE mytable ENGINE = InnoDB;

这个语法适用于任何存储引擎,但是需要执行很长的时间。

转换表的存储引擎,将会失去和原引擎相关的所有特性。

2.导出与导入

可以使用mysqldump工具将数据导出到文件,然后修改文件中CREATE TABLE语句的存储引擎,请注意修改表名。

同时请注意mysqldump工具默认会自动在CREATE TABLE语句前加上DROP TABLE语句,小心数据丢失。

3.创建与查询

综合第一种与第二种,先创建一个新的存储引擎表,然后利用INSTER ... SELECT语法来导数据

 mysql> CREATE TABLE innodb_table LIKE myisam_table;
 mysql>ALTER TABLE innodb_table ENGINE=InnoDB;
 mysql>INSTER INTO innodb_table SELECT * FROM myisam_table;

数据量大的话可以分批处理,针对每一段数据执行事务提交操作,避免大事务产生的undo。Percona Toolkit提供了一个pt-online-schema-change的工具,可以简单,方便的执行避免手工操作导致的失误。

文档

MySQL如何选择合适的引擎以及进行引擎的转换

MySQL如何选择合适的引擎以及进行引擎的转换:我们怎么选择合适的引擎?这里简单归纳一句话:除非需要用到某些InnoDB不具备的特性,并且没有其他办法可以替代,否则都应该优先选择InnoDB引擎。 除非万不得已,否则不建议混合使用多种存储引擎,否则可能带来一系列复杂的问题以及一些潜在的BUG。使
推荐度:
标签: 转换 合适 引擎
  • 热门焦点

最新推荐

猜你喜欢

热门推荐

专题
Top