Rails SELECT 40001 SQL_NO_CACHE从未知位置触发

时间:2016-12-22 08:17:57

标签: mysql ruby-on-rails database-replication

在MySQL数据库服务器中,我们有名为 test 的模式。架构具有名为用户的表。

用户表未被rails应用程序在任何地方使用。找到用户条目的唯一位置是schema.rb。

用户表存储了一些数据,并且数据由另一个在其他服务器上运行的Java应用程序插入。 rails应用程序通过HTTP对API调用JAVA应用程序,并在需要时检索数据以供使用。

每天MySQL Master DB被复制到Slave服务器。

在复制期间,波纹管查询会记录在慢速日志中并使其复制滞后。

root    localhost   test Query  93  Sending data    SELECT /*!40001 SQL_NO_CACHE */ * FROM `users`
root    localhost   test Query  62  Writing to net  SELECT /*!40001 SQL_NO_CACHE */ * FROM `users`

不会从Rails应用程序触发此查询 - 我们可以看到日志中的连接的用户和主机是root和localhost。

如果有人帮助我确定查询的来源以及如何或可以做些什么来避免查询,我将非常感激。

1 个答案:

答案 0 :(得分:3)

我遇到了同样的问题。在我的情况下,这是由于调用mysqldump