Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
李少辉-开发者
gitlab-foss
提交
e88fa6cf
G
gitlab-foss
项目概览
李少辉-开发者
/
gitlab-foss
通知
15
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
G
gitlab-foss
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
e88fa6cf
编写于
3月 09, 2018
作者:
G
Greg Stark
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Add partial indexes on todos to handle users with many todos
上级
3bbe60f8
变更
3
隐藏空白更改
内联
并排
Showing
3 changed file
with
36 addition
and
1 deletion
+36
-1
changelogs/unreleased/add-indexes-to-todos-for-heavy-users-like-sean.yml
...leased/add-indexes-to-todos-for-heavy-users-like-sean.yml
+5
-0
db/migrate/20180309160427_add_partial_indexes_on_todos.rb
db/migrate/20180309160427_add_partial_indexes_on_todos.rb
+28
-0
db/schema.rb
db/schema.rb
+3
-1
未找到文件。
changelogs/unreleased/add-indexes-to-todos-for-heavy-users-like-sean.yml
0 → 100644
浏览文件 @
e88fa6cf
---
title
:
Add partial indexes on todos to handle users with many todos
merge_request
:
author
:
type
:
performance
db/migrate/20180309160427_add_partial_indexes_on_todos.rb
0 → 100644
浏览文件 @
e88fa6cf
# See http://doc.gitlab.com/ce/development/migration_style_guide.html
# for more information on how to write migrations for GitLab.
class
AddPartialIndexesOnTodos
<
ActiveRecord
::
Migration
include
Gitlab
::
Database
::
MigrationHelpers
# Set this constant to true if this migration requires downtime.
DOWNTIME
=
false
disable_ddl_transaction!
INDEX_NAME_PENDING
=
"index_todos_on_user_id_and_id_pending"
INDEX_NAME_DONE
=
"index_todos_on_user_id_and_id_done"
def
up
unless
index_exists?
(
:todos
,
[
:user_id
,
:id
],
name:
INDEX_NAME_PENDING
)
add_concurrent_index
(
:todos
,
[
:user_id
,
:id
],
where:
"state='pending'"
,
name:
INDEX_NAME_PENDING
)
end
unless
index_exists?
(
:todos
,
[
:user_id
,
:id
],
name:
INDEX_NAME_DONE
)
add_concurrent_index
(
:todos
,
[
:user_id
,
:id
],
where:
"state='done'"
,
name:
INDEX_NAME_DONE
)
end
end
def
down
remove_concurrent_index
(
:todos
,
[
:user_id
,
:id
],
where:
"state='pending'"
,
name:
INDEX_NAME_PENDING
)
remove_concurrent_index
(
:todos
,
[
:user_id
,
:id
],
where:
"state='done'"
,
name:
INDEX_NAME_DONE
)
end
end
db/schema.rb
浏览文件 @
e88fa6cf
...
...
@@ -11,7 +11,7 @@
#
# It's strongly recommended that you check this file into your version control system.
ActiveRecord
::
Schema
.
define
(
version:
201803091
21820
)
do
ActiveRecord
::
Schema
.
define
(
version:
201803091
60427
)
do
# These are extensions that must be enabled in order to support this database
enable_extension
"plpgsql"
...
...
@@ -1778,6 +1778,8 @@ ActiveRecord::Schema.define(version: 20180309121820) do
add_index
"todos"
,
[
"note_id"
],
name:
"index_todos_on_note_id"
,
using: :btree
add_index
"todos"
,
[
"project_id"
],
name:
"index_todos_on_project_id"
,
using: :btree
add_index
"todos"
,
[
"target_type"
,
"target_id"
],
name:
"index_todos_on_target_type_and_target_id"
,
using: :btree
add_index
"todos"
,
[
"user_id"
,
"id"
],
name:
"index_todos_on_user_id_and_id_done"
,
where:
"((state)::text = 'done'::text)"
,
using: :btree
add_index
"todos"
,
[
"user_id"
,
"id"
],
name:
"index_todos_on_user_id_and_id_pending"
,
where:
"((state)::text = 'pending'::text)"
,
using: :btree
add_index
"todos"
,
[
"user_id"
],
name:
"index_todos_on_user_id"
,
using: :btree
create_table
"trending_projects"
,
force: :cascade
do
|
t
|
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录