mysql - 如果MySQL表的引擎从MySAM更改为InnoDB,软件或站点会受到影响吗?

标签 mysql innodb

我知道这个问题的答案可能是否定的!但仔细检查一下,如果您将多个程序链接到当前使用 MySAM 引擎的不同 MySQL 表,然后我将引擎更改为 InnoDB,这会影响数据库之外的任何内容吗?例如无法检索数据、插入数据、调用存储过程等。

软件可以使用不同的语言,例如 PHP、JAVA、Visual Fox、.Net 等。

最佳答案

从 MyISAM 切换到 InnoDB 时需要考虑几十个差异。他们是enumerated here .

正如你所说,答案是“否”。但是,有些东西可能会从 MySQL 泄漏回客户端。 FULLTEXT 的工作原理并不完全相同。在某些情况下,使用 InnoDB 可以获得 0 结果,但使用 MyISAM 则不行。有些事情可能需要更长的时间,特别是如果您没有按照上面的链接中的指示调整索引。 LOCK TABLES 应替换为 BEGIN (等等);这涉及到客户端代码。 InnoDB 的磁盘空间明显更大。

是的,key_buffer_size 应该降低到 40M; innodb_buffer_pool_size 应设置为可用 RAM 的 70% 左右。这是一个很大的性能问题。

关于mysql - 如果MySQL表的引擎从MySAM更改为InnoDB,软件或站点会受到影响吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34801624/

相关文章:

mysql - 加入大表越来越慢

mysql - 如何在 SQL 中获取下个月 21 岁生日的学生?

php - 使用 CONCAT 从子查询返回多个值

mysql - 选择和计数查询在 MySQL 中未按预期工作

mysql - 多级查询从第二个子查询获取值来驱动父元素

MySQL 查询优化(运行 7.6 秒)

mysql - 页面与范围与段与表空间

mysql - 优化卡在 "Creating sort index"上的简单 MySQL GROUP BY 查询

mysql - InnoDB : Unable to lock ./ibdata1 mysql错误如何解决?

php - mysql_num_rows 返回 1