Size: a a a

2020 May 07

VM

Vladislav Milenin in Go-go!
Daniel Podolsky
а что за запрос, и что на него говорит explain?
выше скрин с кейсом про 54мс
источник

Н

Никита in Go-go!
Vitaly
Вот вы тут обсуждаете где хранить токены - в редисе, в базе данных, считаете тайминги...
Внимание, вопрос - а какова плановая и какова теоретически возможная нагрузка?

Может там в среднем 1 запрос в минуту и 5 запросов в минуту в пике в идеальных условиях.
Наверняка так и есть
источник

DP

Daniel Podolsky in Go-go!
Vladislav Milenin
выше скрин с кейсом про 54мс
полезной информации не содержит
источник

VM

Vladislav Milenin in Go-go!
но это без проверки на created_at, там будет медленнее очевидно
источник

DP

Daniel Podolsky in Go-go!
Vladislav Milenin
но это без проверки на created_at, там будет медленнее очевидно
совершенно не факт
источник

VM

Vladislav Milenin in Go-go!
Daniel Podolsky
полезной информации не содержит
select count(1) = 0 from metadata where uuid = 'b940d071-d781-46f0-82b6-62b3f3934f2c'

[
 {
   "Plan": {
     "Node Type": "Aggregate",
     "Strategy": "Plain",
     "Partial Mode": "Simple",
     "Parallel Aware": false,
     "Startup Cost": 8.45,
     "Total Cost": 8.46,
     "Plan Rows": 1,
     "Plan Width": 1,
     "Actual Startup Time": 0.053,
     "Actual Total Time": 0.054,
     "Actual Rows": 1,
     "Actual Loops": 1,
     "Output": [
       "(count(1) = 0)"
     ],
     "Shared Hit Blocks": 0,
     "Shared Read Blocks": 4,
     "Shared Dirtied Blocks": 0,
     "Shared Written Blocks": 0,
     "Local Hit Blocks": 0,
     "Local Read Blocks": 0,
     "Local Dirtied Blocks": 0,
     "Local Written Blocks": 0,
     "Temp Read Blocks": 0,
     "Temp Written Blocks": 0,
     "Plans": [
       {
         "Node Type": "Index Only Scan",
         "Parent Relationship": "Outer",
         "Parallel Aware": false,
         "Scan Direction": "Forward",
         "Index Name": "metadata_uuid",
         "Relation Name": "metadata",
         "Schema": "public",
         "Alias": "metadata",
         "Startup Cost": 0.43,
         "Total Cost": 8.45,
         "Plan Rows": 1,
         "Plan Width": 0,
         "Actual Startup Time": 0.044,
         "Actual Total Time": 0.045,
         "Actual Rows": 1,
         "Actual Loops": 1,
         "Output": [
           "uuid"
         ],
         "Index Cond": "(metadata.uuid = 'b940d071-d781-46f0-82b6-62b3f3934f2c'::uuid)",
         "Rows Removed by Index Recheck": 0,
         "Heap Fetches": 0,
         "Shared Hit Blocks": 0,
         "Shared Read Blocks": 4,
         "Shared Dirtied Blocks": 0,
         "Shared Written Blocks": 0,
         "Local Hit Blocks": 0,
         "Local Read Blocks": 0,
         "Local Dirtied Blocks": 0,
         "Local Written Blocks": 0,
         "Temp Read Blocks": 0,
         "Temp Written Blocks": 0
       }
     ]
   },
   "Planning Time": 0.129,
   "Triggers": [],
   "Execution Time": 0.089
 }
]
источник

DP

Daniel Podolsky in Go-go!
запрос еще хочу увидеть
источник

DP

Daniel Podolsky in Go-go!
ну и - это в каком формате вывод? мне бы именно результат explain из консоли постгреса
источник

а

а кто это in Go-go!
Vladislav Milenin
но это без проверки на created_at, там будет медленнее очевидно
а планер так не считает
источник

GD

Green Dog in Go-go!
КТонить использовал go либу  к aws simpledb?
источник

VM

Vladislav Milenin in Go-go!
Daniel Podolsky
ну и - это в каком формате вывод? мне бы именно результат explain из консоли постгреса
это explain analyze
источник

VM

Vladislav Milenin in Go-go!
Daniel Podolsky
запрос еще хочу увидеть
select count(1) = 0 from metadata where uuid = 'b940d071-d781-46f0-82b6-62b3f3934f2c' and requested_at < now() + interval '1 minute'


[
 {
   "Plan": {
     "Node Type": "Aggregate",
     "Strategy": "Plain",
     "Partial Mode": "Simple",
     "Parallel Aware": false,
     "Startup Cost": 8.46,
     "Total Cost": 8.47,
     "Plan Rows": 1,
     "Plan Width": 1,
     "Actual Startup Time": 0.1,
     "Actual Total Time": 0.101,
     "Actual Rows": 1,
     "Actual Loops": 1,
     "Output": [
       "(count(1) = 0)"
     ],
     "Shared Hit Blocks": 0,
     "Shared Read Blocks": 4,
     "Shared Dirtied Blocks": 0,
     "Shared Written Blocks": 0,
     "Local Hit Blocks": 0,
     "Local Read Blocks": 0,
     "Local Dirtied Blocks": 0,
     "Local Written Blocks": 0,
     "Temp Read Blocks": 0,
     "Temp Written Blocks": 0,
     "Plans": [
       {
         "Node Type": "Index Scan",
         "Parent Relationship": "Outer",
         "Parallel Aware": false,
         "Scan Direction": "Forward",
         "Index Name": "metadata_uuid",
         "Relation Name": "metadata",
         "Schema": "public",
         "Alias": "metadata",
         "Startup Cost": 0.43,
         "Total Cost": 8.46,
         "Plan Rows": 1,
         "Plan Width": 0,
         "Actual Startup Time": 0.092,
         "Actual Total Time": 0.093,
         "Actual Rows": 1,
         "Actual Loops": 1,
         "Index Cond": "(metadata.uuid = 'b940d071-d781-46f0-82b6-62b3f3934f2c'::uuid)",
         "Rows Removed by Index Recheck": 0,
         "Filter": "(metadata.requested_at < (now() + '00:01:00'::interval))",
         "Rows Removed by Filter": 0,
         "Shared Hit Blocks": 0,
         "Shared Read Blocks": 4,
         "Shared Dirtied Blocks": 0,
         "Shared Written Blocks": 0,
         "Local Hit Blocks": 0,
         "Local Read Blocks": 0,
         "Local Dirtied Blocks": 0,
         "Local Written Blocks": 0,
         "Temp Read Blocks": 0,
         "Temp Written Blocks": 0
       }
     ]
   },
   "Planning Time": 0.27,
   "Triggers": [],
   "Execution Time": 0.15
 }
]
источник

DP

Daniel Podolsky in Go-go!
Vladislav Milenin
это explain analyze
я понимаю, мне формат вывода непривычен
источник

VM

Vladislav Milenin in Go-go!
Vladislav Milenin
select count(1) = 0 from metadata where uuid = 'b940d071-d781-46f0-82b6-62b3f3934f2c'

[
 {
   "Plan": {
     "Node Type": "Aggregate",
     "Strategy": "Plain",
     "Partial Mode": "Simple",
     "Parallel Aware": false,
     "Startup Cost": 8.45,
     "Total Cost": 8.46,
     "Plan Rows": 1,
     "Plan Width": 1,
     "Actual Startup Time": 0.053,
     "Actual Total Time": 0.054,
     "Actual Rows": 1,
     "Actual Loops": 1,
     "Output": [
       "(count(1) = 0)"
     ],
     "Shared Hit Blocks": 0,
     "Shared Read Blocks": 4,
     "Shared Dirtied Blocks": 0,
     "Shared Written Blocks": 0,
     "Local Hit Blocks": 0,
     "Local Read Blocks": 0,
     "Local Dirtied Blocks": 0,
     "Local Written Blocks": 0,
     "Temp Read Blocks": 0,
     "Temp Written Blocks": 0,
     "Plans": [
       {
         "Node Type": "Index Only Scan",
         "Parent Relationship": "Outer",
         "Parallel Aware": false,
         "Scan Direction": "Forward",
         "Index Name": "metadata_uuid",
         "Relation Name": "metadata",
         "Schema": "public",
         "Alias": "metadata",
         "Startup Cost": 0.43,
         "Total Cost": 8.45,
         "Plan Rows": 1,
         "Plan Width": 0,
         "Actual Startup Time": 0.044,
         "Actual Total Time": 0.045,
         "Actual Rows": 1,
         "Actual Loops": 1,
         "Output": [
           "uuid"
         ],
         "Index Cond": "(metadata.uuid = 'b940d071-d781-46f0-82b6-62b3f3934f2c'::uuid)",
         "Rows Removed by Index Recheck": 0,
         "Heap Fetches": 0,
         "Shared Hit Blocks": 0,
         "Shared Read Blocks": 4,
         "Shared Dirtied Blocks": 0,
         "Shared Written Blocks": 0,
         "Local Hit Blocks": 0,
         "Local Read Blocks": 0,
         "Local Dirtied Blocks": 0,
         "Local Written Blocks": 0,
         "Temp Read Blocks": 0,
         "Temp Written Blocks": 0
       }
     ]
   },
   "Planning Time": 0.129,
   "Triggers": [],
   "Execution Time": 0.089
 }
]
добавил запрос
источник

DP

Daniel Podolsky in Go-go!
Vladislav Milenin
select count(1) = 0 from metadata where uuid = 'b940d071-d781-46f0-82b6-62b3f3934f2c' and requested_at < now() + interval '1 minute'


[
 {
   "Plan": {
     "Node Type": "Aggregate",
     "Strategy": "Plain",
     "Partial Mode": "Simple",
     "Parallel Aware": false,
     "Startup Cost": 8.46,
     "Total Cost": 8.47,
     "Plan Rows": 1,
     "Plan Width": 1,
     "Actual Startup Time": 0.1,
     "Actual Total Time": 0.101,
     "Actual Rows": 1,
     "Actual Loops": 1,
     "Output": [
       "(count(1) = 0)"
     ],
     "Shared Hit Blocks": 0,
     "Shared Read Blocks": 4,
     "Shared Dirtied Blocks": 0,
     "Shared Written Blocks": 0,
     "Local Hit Blocks": 0,
     "Local Read Blocks": 0,
     "Local Dirtied Blocks": 0,
     "Local Written Blocks": 0,
     "Temp Read Blocks": 0,
     "Temp Written Blocks": 0,
     "Plans": [
       {
         "Node Type": "Index Scan",
         "Parent Relationship": "Outer",
         "Parallel Aware": false,
         "Scan Direction": "Forward",
         "Index Name": "metadata_uuid",
         "Relation Name": "metadata",
         "Schema": "public",
         "Alias": "metadata",
         "Startup Cost": 0.43,
         "Total Cost": 8.46,
         "Plan Rows": 1,
         "Plan Width": 0,
         "Actual Startup Time": 0.092,
         "Actual Total Time": 0.093,
         "Actual Rows": 1,
         "Actual Loops": 1,
         "Index Cond": "(metadata.uuid = 'b940d071-d781-46f0-82b6-62b3f3934f2c'::uuid)",
         "Rows Removed by Index Recheck": 0,
         "Filter": "(metadata.requested_at < (now() + '00:01:00'::interval))",
         "Rows Removed by Filter": 0,
         "Shared Hit Blocks": 0,
         "Shared Read Blocks": 4,
         "Shared Dirtied Blocks": 0,
         "Shared Written Blocks": 0,
         "Local Hit Blocks": 0,
         "Local Read Blocks": 0,
         "Local Dirtied Blocks": 0,
         "Local Written Blocks": 0,
         "Temp Read Blocks": 0,
         "Temp Written Blocks": 0
       }
     ]
   },
   "Planning Time": 0.27,
   "Triggers": [],
   "Execution Time": 0.15
 }
]
погодите. мы же, вроде, именно тут терли, что этот запрос вызывает фулскан
источник

VM

Vladislav Milenin in Go-go!
Daniel Podolsky
погодите. мы же, вроде, именно тут терли, что этот запрос вызывает фулскан
я сказал про index only scan
источник

DP

Daniel Podolsky in Go-go!
так это

любой фулскан - это фейл
источник

VM

Vladislav Milenin in Go-go!
only, сори

на скрине index only scan
источник

DP

Daniel Podolsky in Go-go!
а индекс уникальный?
источник

VM

Vladislav Milenin in Go-go!
да
источник