我在有大量供应商向其发送数据(或阅读通知)的电子商务网站上工作,我需要为每个供应商保留最后一次连接的时间。由于供应商表的更新显示为不良做法(大量更新性能不佳),因此我创建了内存表,其中存储了每个供应商的最后连接时间。该时间比一分钟更新一次或两次。对于更新,我使用此查询:
更新供应商自然加入 tmp_vendors 设置供应商.last_conn_time = tmp_vendors.last_conn_time
我在 mysqld.log 中不断得到的是:
[警告] 由于 BINLOG_FORMAT = STATEMENT,使用语句格式写入二进制日志的不安全语句。从另一个表中选择后写入具有自动增量列的表的语句是不安全的,因为检索行的顺序决定了将写入哪些(如果有)行。此顺序无法预测,并且可能在主从服务器上有所不同。
那么有没有办法关闭这个警告(仅在当前的数据库连接上)或者有没有更好的做法呢?