小编Aar*_*ron的帖子

SELECT DISTINCT ON 子查询使用低效的计划

我有一张表progresses(目前包含数十万条记录):

    Column     |            Type             |                        Modifiers                        
---------------+-----------------------------+---------------------------------------------------------
 id            | integer                     | not null default nextval('progresses_id_seq'::regclass)
 lesson_id     | integer                     | 
 user_id       | integer                     | 
 created_at    | timestamp without time zone | 
 deleted_at    | timestamp without time zone | 
Indexes:
    "progresses_pkey" PRIMARY KEY, btree (id)
    "index_progresses_on_deleted_at" btree (deleted_at)
    "index_progresses_on_lesson_id" btree (lesson_id)
    "index_progresses_on_user_id" btree (user_id)
Run Code Online (Sandbox Code Playgroud)

和视图v_latest_progresses,其将查询最近progressuser_idlesson_id

SELECT DISTINCT ON (progresses.user_id, progresses.lesson_id)
  progresses.id AS progress_id,
  progresses.lesson_id,
  progresses.user_id,
  progresses.created_at,
  progresses.deleted_at
 FROM progresses
WHERE progresses.deleted_at IS …
Run Code Online (Sandbox Code Playgroud)

postgresql postgresql-9.4

8
推荐指数
1
解决办法
1821
查看次数

标签 统计

postgresql ×1

postgresql-9.4 ×1