草庐IT

mysql - ORDER BY datetime 使查询非常慢

全部标签

ruby-on-rails - 如何修复 Rails 中 pg_attribute 表的缓慢隐式查询

在我们的生产环境中,我们注意到Rails应用程序频繁出现峰值(大约每1小时一次)。深入挖掘,这是由于以下查询在单个HTTP请求中累计运行时间超过1.5秒(称为100倍)。SELECTa.attname,format_type(a.atttypid,a.atttypmod),pg_get_expr(d.adbin,d.adrelid),a.attnotnull,a.atttypid,a.atttypmodFROMpg_attributeaLEFTJOINpg_attrdefdONa.attrelid=d.adrelidANDa.attnum=d.adnumWHEREa.attrelid=

ruby - 自动记录 DataMapper 查询

我正在使用DataMapper在Sinatra中开发一个简单的应用程序。我想查看DM为我的各种链式查找器等创建的查询。我试过:DataMapper::Logger.new(STDOUT,:debug)在我的configuredo...endblock中,environment.rb文件会在应用程序启动时加载。我也试过:DataMapper::Logger.new('log/my-app.log',:debug)既不会从通过浏览器或通过需要我的应用程序的irbsession访问的应用程序生成日志语句。我确实看到了应用启动消息。我正在使用rackupconfig.ru在本地运行应用程序。我

ruby - 一个在 Ruby 上表现非常糟糕的简单正则表达式

我有一个简单的Ruby正则表达式,需要很长时间才能计算:"fußball"*20=~/^([\S\s]{1000})/i如果我删除/i标志,它会工作得非常快。为什么运行这么慢?(我没有等到执行完毕)我知道这个正则表达式可能没有意义,但我想知道幕后是什么。错误报告:https://bugs.ruby-lang.org/issues/14418 最佳答案 默认.不匹配换行符。[\s\S]是解决该问题的方法。在Ruby中,您可以使用/m标志使点匹配所有字符。它在文档中RubyMetacharactersandEscapes[\S\s]由于

ruby-on-rails - 将查询字符串附加到 url

我有一个回调url字符串params[:callback],我需要附加一个查询字符串"&result=true"并重定向用户。我发现这样做的更好方法是使用addressable但我认为代码对于这样的任务来说太大了,尤其是当我们谈论ruby​​时:callback=Addressable::URI.parse(params[:callback])query=callback.query_valuesquery[:result]='true'callback.query_values=queryredirect_tocallback.to_s是否有更优雅的方式来获得与此代码段相同的结果?

ruby-on-rails - 如何获取触发查询的代码行?

在rails3.2中是否有一种方法(一个gem、一个插件或其他东西)来知道哪一行代码触发了一个数据库查询?例如在我的日志中我有:UserLoad(0.4ms)SELECT`users`.*FROM`users`WHERE`users`.`id`=5LIMIT1如何知道触发查询的代码行?谢谢... 最佳答案 我找到了这个解决方案:moduleQueryTracedefself.enable!::ActiveRecord::LogSubscriber.send(:include,self)enddefself.append_featur

ruby-on-rails - 在 Rails 中通过 belongs_to 关系查询记录

我有一个事件模型,它们属于一个位置如何选择location.country=Australia的所有事件?(例如)我可以在一个范围内这样做吗? 最佳答案 使用最新的rails版本,您可以:Activity.joins(:location).where(locations:{country:"Australia"})注意:它是joins(:location)中的位置(单数),因为它引用了belongs_to关系名称它是where(…)中的位置(复数),因为它引用了表名后者意味着如果您有以下情况:belongs_to:location,

ruby - 思维狮身人面像未知类型 'mysql';跳绳

我使用的是ts版本2.0.5、rails3.0.9和mysql20.2.11尝试使用rakets:index创建索引时,出现以下错误:ERROR:source'technical_core_0':unknowntype'mysql';skipping.我的development.sphinx.conf包含:sourcetechnical_core_0{type=mysqlsql_host=localhostsql_user=rootsql_pass=sql_db=ps_developmentsql_sock=/tmp/mysql.socksql_query_pre=SETNAMESut

ruby-on-rails - Rails 在 ruby​​ 1.9.1 上初始化非常慢

我刚刚让我的Rails2.3.8应用程序在ruby​​1.9.1上运行。要进入控制台,启动网络服务器,任何初始化rails的东西,在ruby​​1.9中比在ruby​​1.8.7中花费3-4倍的时间。我正在使用ruby​​版本管理器,因此我可以轻松地在ruby​​1.9和ruby​​1.8.7之间切换。速度差异发生在生产和开发中。我想使用1.9,因为一旦一切都在运行,它必须更快,但启动时间太糟糕了,应用程序在第一次请求时在Heroku上超时。知道为什么ruby​​1.9会慢3-4倍吗?我这辈子都想不通。 最佳答案 尝试使用1.9.2

ruby - 使用 ActiveRecord 在查询对象中转义参数?

给定一个查询对象(不是AR模型)classComplexQueryQUERY=如何方便地转义所有参数?我成功地使用了三种技术,但没有一种是方便的。使用raw_connection(对我而言)返回PG::Conn的实例并调用exec_params。我对此并不满意,因为exec_params需要一组详细的参数来指定数据类型。在我的查询对象中包含ActiveRecord::Sanitization并使用其中一种方便的方法,例如replace_named_bind_variables。我对此不满意,因为replace_named_bind_variables是protected并且我必须使用s

sql - 何时使用 ORM(Sequel、Datamapper、AR 等)与纯 SQL 进行查询

我的一位同事目前正在设计如下所示的SQL查询以生成报告,这些报告通过外部数据查询显示在excel文件中。目前只需要DB上的上报流程(无CRUD操作)。我试图说服他最好使用ruby​​ORM以便能够在rails/sinatra应用程序中显示数据。尽管在显示数据方面有明显的优势,但学习使用像Sequel或Datamapper这样的ORM对他有什么优势?他正在编写的SQL查询显然相当复杂,并且对SQL比较陌生,他经常提示它非常耗时且令人困惑。是否可以使用ORM编写极其复​​杂的查询?如果是这样,哪个最合适(我听说Sequel对遗留数据库有好处)?在进行复杂的数据库查询时,学习Ruby和使用O