mysql - Rails SELECT 40001 SQL_NO_CACHE 从未知位置触发

标签 mysql ruby-on-rails database-replication

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

users 表未在任何地方被 Rails 应用程序使用。 users 条目的唯一位置是在 schema.rb 中。

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

MySQL 主数据库每天都会被复制到从服务器。

在复制过程中,波纹管查询被记录在慢速日志中并导致复制滞后。

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。

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

最佳答案

我遇到了同样的问题。在我的例子中,这是由于调用 mysqldump

关于mysql - Rails SELECT 40001 SQL_NO_CACHE 从未知位置触发,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41278597/

相关文章:

Mysql 字符串被拒绝

php - 在wordpress中上传图片时出现HTTP错误

php - REST API 部分工作 - PHP

ruby-on-rails - Rails 确定关联是 has_one 还是 has_many

mongodb - Mongo副本集 `rs.add()`使初始主副本成为辅助副本并呈现主副本 `fatal`

mysql - 如何将复制权限授予mysql中的数据库?

php - 从 Linux 迁移到 Windows 后的 WSOD

sql - Rails 3 在没有模型的情况下执行自定义 SQL 查询

sql - heroku activerecord 查询错误

mysql - MariaDB 复制 - 由于中继日志中的 gtid 语句导致从属滞后