我们使用 SchemaUpdate.Execute() 在 NHibernate 应用程序中更新应用程序升级时的数据库模式结构,该应用程序在 MySQL5Dialect 和 MsSql2008Dialect 中工作。该数据库有大约 220 个表。对 MsSql 执行只需要几秒钟,但对 MySql 执行可能需要 10 分钟甚至更长时间。有多少实际模式更改似乎无关紧要 - 比较需要很长时间。
有没有其他人遇到过 SchemaUpdate.Execute() for MySql 性能低下的情况?我可以在应用程序或数据库中做些什么来优化它吗?
最佳答案
发生这种情况很可能是因为您没有使用 innodb,这意味着 ddl 更改必须复制所有数据并重建所有索引。
为什么这在 MsSql 上更快?因为它有适当的 ddl 支持。
尝试将您的表存储更改为 innodb,我相信您会惊喜不已。
关于mysql - 为什么 NHibernate SchemaUpdate 在 MySQL 中比在 MS SQL Server 中慢得多,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5313841/