我们的数据库服务器拥有数千个数据库,在进行特定搜索时,我需要检查它们。
目前,我与其中每一个建立连接,进行搜索和断开 - 这是有效的,但当然有一些开销(重新连接几千次),我想摆脱它。
我尝试过类似的事情:
companies.each do |company|
rs = con.query("SELECT * FROM #{company[:schema_id]}.properties")
rs.num_rows.times do
puts rs.fetch_row.join("\s")
end
end
但它在第30家公司崩溃了:
NameError - undefined local variable or method `e' for <name of app>
公司[:schema_id]是一个哈希,我检查了它 - 它不是以&#39; e&#39;信件。我还尝试过使用newdatabase&#39;并且做了简单的查询,但是,当我第30次更换数据库时,它就死了。
我还尝试每25次查询重置一次连接,但第二次连接在第5次查询时崩溃(再次总结为30次),所以这不会有帮助。
这是mysql的一些限制吗?我无法谷歌任何东西或在mysql配置中找到任何东西。
更新:代码是ruby,崩溃时我得到的错误是:
Mysql2::Error - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'databasename.properties WHERE tenant = 0 AND name = ' at line 1:
提前致谢!
答案 0 :(得分:0)
问题是数据库不在``而且恰好是mysql服务器不喜欢第30个哈希(数据库名)。