我有一个应用程序从主机获取心跳(一个简单的http请求),通常主机每x分钟生成一个请求。这导致大量完全独立的php页面运行,然后执行读取查询(可能)生成一个单行插入到RDS数据库,如果成功则不重要(一个错过的节拍不是原因警报,几个是)
然而,对于mysqli,我在IOP中有很大的开销 - 它发送一个BEGIN,我的单行插入,然后发送一个COMMIT - 因此看起来使用三个IOP,我只需要一个。
有没有办法完全避免交易?我可以更改auto_commit,但它没有用,因为处理程序的每次运行都是独立的,因此没有其他插入与此组合。即使关闭auto_commit仍然会运行一个事务,但只在连接关闭时结束它(无论如何在一次插入后发生。)
或者我应该切换到原始的mysql处理效率(很多工作)?旧的mysql php库(已弃用)?还有别的吗?
答案 0 :(得分:0)
如果您确实不需要交易,可以将MyISAM存储引擎用于不支持交易的表格。
我总是使用:
SET AUTOCOMMIT=1
对于我的InnoDB数据库,在连接数据库之后我不需要使用事务。