把头发拉到这里试图找出发生了什么...... 这是设置:
Digital Ocean Droplet
Ubuntu 15.04.1
JRuby 9.0.3.0
MariaDB 10.0.20
Java 1.8.0_66
宝石:
activerecord (4.2.4)
activerecord-jdbc-adapter (1.3.18)
jdbc-mariadb (1.2.0)
这是我用来测试的简单代码:
require 'active_record'
require 'activerecord-jdbc-adapter'
require 'jdbc/mariadb'
Jdbc::MariaDB.load_driver
class Main < ActiveRecord::Base
establish_connection(
:adapter => "mariadb",
:host => "localhost",
:database => "mydatabase",
:username => "root",
:password => "*******")
end
t1 = Time.now
puts Main.connection.execute("SELECT * FROM my_table")
t2 = Time.now
puts (t2 - t1) / 60
t1 = Time.now
puts Main.connection.execute("SELECT * FROM my_other_table")
t2 = Time.now
puts (t2 - t1) / 60
此测试的结果是第一个查询执行时间超过6.5分钟,第二个查询在几分之一秒内完成。
我尝试使用MySQL而不是MariaDB具有相同的结果。我试过降级我的宝石以及JRuby。我很困惑,因为本地工作正如我所料,第一个查询几乎立即返回。
非常感谢帮助谢谢!
答案 0 :(得分:0)
通常表示生产设置错误,如果不了解有关提供商和您的具体设置的信息,将很难确切地说出来。
您可以验证其不是JRuby特定问题,例如通过尝试普通的Java程序来做同样的事情,那时你可能会提出支持问题。