小编Jul*_*n H的帖子

当order by与where子句不同时,任何避免文件排序的方法是什么?

我有一个非常简单的查询(表类型InnoDb),并EXPLAIN说MySQL必须做一个额外的传递,以找出如何按排序顺序检索行.

SELECT * FROM `comments` 
WHERE (commentable_id = 1976) 
ORDER BY created_at desc LIMIT 0, 5
Run Code Online (Sandbox Code Playgroud)

确切解释输出:

table   select_type     type    extra                          possible_keys   key             key length   ref     rows
comments   simple      ref   using where; using filesort    common_lookups  common_lookups  5   const   89
Run Code Online (Sandbox Code Playgroud)

commentable_id已编入索引.评论没有任何技巧,只是一个内容领域.

该手册表明,如果order by与where不同,则无法避免filesort.

http://dev.mysql.com/doc/refman/5.0/en/order-by-optimization.html

我也试过id和它的等价但是没有区别,即使我添加id作为索引(我理解这不是必需的,因为id在MySQL中隐式索引).

提前感谢任何想法!

标记 - 这是SHOW CREATE TABLE

CREATE TABLE `comments` (
  `id` int(11) NOT NULL auto_increment,
  `user_id` int(11) default NULL,
  `commentable_type` varchar(255) default NULL,
  `commentable_id` int(11) default NULL,
  `content` text,
  `created_at` datetime default NULL,
  `updated_at` …
Run Code Online (Sandbox Code Playgroud)

mysql

10
推荐指数
1
解决办法
2488
查看次数

红宝石一行"检查价值和返回"

我正在挖掘一些有趣的代码,我确信这是错误的.我想知道是否有人想过开发人员试图使用的语法?

继承人的伪造代码:

render :nothing => true and return if params[:name].nil?
Run Code Online (Sandbox Code Playgroud)

我天真的修复暗示了我的编程语言背景:

if params[:name].nil?
  render :nothing => true, :status => 404
  return
end
Run Code Online (Sandbox Code Playgroud)

有更优雅,更像红宝石的方式吗?(分号不算:)

ruby ruby-on-rails

4
推荐指数
2
解决办法
4668
查看次数

Ruby Mash相当于Python?

在Ruby中,有一个叫做Mash的真棒库,它是一个Hash但是通过巧妙地使用missing_method可以转换:

object['property']
Run Code Online (Sandbox Code Playgroud)

object.property
Run Code Online (Sandbox Code Playgroud)

这对模拟非常有用.有人知道Python中有类似的东西吗?

ruby python mocking

4
推荐指数
1
解决办法
1083
查看次数

标签 统计

ruby ×2

mocking ×1

mysql ×1

python ×1

ruby-on-rails ×1