dar*_*mkd 5 indexing database-design ruby-on-rails
我理解为什么索引顺序在 Rails 中很重要(来自这样的答案),例如,如果我有:
add_index :admin_users_pages, ["user_id", "page_id"]
Run Code Online (Sandbox Code Playgroud)
所以我应该把“缩小行数”的字段设置得最快,但我不确定这是什么意思。假设我有 2 个用户,有 2 个唯一 ID,还有 300 个页面,有 300 个唯一 ID,那么将哪一个放在第一位是更明智的选择?假设我有 150 个页面供第一个用户使用,150 个页面供第二个用户使用,索引是否会类似于:
user_id page_id
1 1
1 2
1 3
Run Code Online (Sandbox Code Playgroud)
或者 page_id 根本不会被排序,只有索引,所以我应该得到类似的东西:
user_id page_id
1 143
1 93
1 31
Run Code Online (Sandbox Code Playgroud)
在您的情况下, 的选择性page_id会更好,因为它可以非常快地缩小行数(减少到 2)。这意味着,如果给你一个page_id比,你可以从表中取出 2 条记录,然后按 过滤它们user_id,但如果你有user_id,那么你将取出 150 条记录并过滤它们。所以最好把“page_id”放在第一位。
| 归档时间: |
|
| 查看次数: |
1525 次 |
| 最近记录: |