如何设置Ruby on Rails 4+应用程序的默认数据库隔离级别

我希望默认情况下让我的应用程序序列化每个事务。 然后,我会根据性能测量结果放松隔离,并了解特定操作/事务使用和更改的数据。

我怀疑默认情况下序列化会进入框架,因为它会减慢速度并且难以解释。 但我不想处理数据库损坏,并且确实需要内部一致的聚合计算。

对于逐个案例的隔离级别,有Rails postgresql如何将事务隔离级别设置为可序列化但我认为这种方法是错误的,因为html-escaping以防止xss错误并被删除:白名单比黑名单更安全。

有没有人这样做过? 哪里可以成为挂钩进入轨道的好地方?

如果你想要这个默认值,那么我建议你在MySQL配置中设置它。 此处描述了该设置: https : //dev.mysql.com/doc/refman/5.7/en/server-options.html#option_mysqld_transaction-isolation

[mysqld] default-character-set = utf8 default-storage-engine = InnoDB default-table-type = InnoDB transaction-isolation = SERIALIZABLE 

对于PostgreSQL,该设置称为default_transaction_isolation 。 你可以在postgresql.conf中设置它。