我有一个使用Spring-Security-Core插件的grails应用程序,它将Spring Security 3集成到我的应用程序中。我相信Spring / Hibernate将在幕后进行一些事务操作。如果是这种情况,使用mysql的innodb引擎而不是默认的MyIsam引擎会更好吗?或者操作是否独立于底层数据库? 提前谢谢!
答案 0 :(得分:2)
关于插件如何工作,没有什么特别的交易。它只读取 - 主数据库访问将加载用户和用户的指定角色。您需要在更新用户,分配角色等时使用事务,但这与安全性无关,这是正确的做法。
正如其他人所说,除了可能更适合NoSQL数据库的专用用例外,没有理由使用MyISAM。 InnoDB速度非常快,并且具有出色的事务支持。
答案 1 :(得分:1)
InnoDB强制实施参照完整性; MyISAM没有。
看起来MyISAM不支持事务/回滚:
http://dev.mysql.com/doc/refman/5.0/en/ansi-diff-transactions.html
因此,如果需要事务管理器,最好使用InnoDB。
答案 2 :(得分:0)
其实我认为innodb引擎将是明智的选择。主要原因 - 持久性和数据完整性支持。 MyIsam更“脆弱”。现在只使用它的原因 - 巨大的插入活动 - 这不是你的情况(我试着不要太深入 - 它更复杂,不与问题联系)。