Skip to content

feat(backend): add indexes for noteId in note_favorite and user_note_pining tables#17511

Merged
syuilo merged 3 commits into
misskey-dev:developfrom
samunohito:refactor/17508-add-index
May 30, 2026
Merged

feat(backend): add indexes for noteId in note_favorite and user_note_pining tables#17511
syuilo merged 3 commits into
misskey-dev:developfrom
samunohito:refactor/17508-add-index

Conversation

@samunohito
Copy link
Copy Markdown
Member

What

note_favorite と user_note_pining にそれぞれnoteId単独のIndexを追加します。
これによりリモートノートクリーナーの削除対象検索処理が若干早くなります。

Why

fix #17508
close #17057

Additional info (optional)

ジョブで構築されるSQL相当のクエリを作成し、自分のサーバで実行計画の before / afterを取得しました。200ms弱ほど早くなっています。

…が、おひとり鯖なので利用状況に偏りがあります。あくまで参考程度に…

before

+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|QUERY PLAN                                                                                                                                                                                                       |
+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|HashAggregate  (cost=10980316.97..10980320.97 rows=400 width=84) (actual time=745.990..746.017 rows=183 loops=1)                                                                                                 |
|  Group Key: candidate_notes.id, (unremovable.id IS NULL)                                                                                                                                                        |
|  Batches: 1  Memory Usage: 61kB                                                                                                                                                                                 |
|  Buffers: shared hit=2738 read=1449 dirtied=3                                                                                                                                                                   |
|  CTE candidate_notes                                                                                                                                                                                            |
|    ->  Recursive Union  (cost=2791.84..10965407.79 rows=15050 width=135) (actual time=660.769..745.541 rows=183 loops=1)                                                                                        |
|          Buffers: shared hit=2738 read=1449 dirtied=3                                                                                                                                                           |
|          ->  Limit  (cost=2791.84..2983.51 rows=100 width=70) (actual time=660.752..693.981 rows=100 loops=1)                                                                                                   |
|                Buffers: shared hit=508 read=1431 dirtied=3                                                                                                                                                      |
|                ->  Nested Loop Anti Join  (cost=2791.84..11514.74 rows=4551 width=70) (actual time=53.504..86.722 rows=100 loops=1)                                                                             |
|                      Join Filter: ((note_reaction_1."noteId")::text = (note.id)::text)                                                                                                                          |
|                      Rows Removed by Join Filter: 359000                                                                                                                                                        |
|                      Buffers: shared hit=508 read=1431 dirtied=3                                                                                                                                                |
|                      ->  Merge Anti Join  (cost=2791.13..5412.39 rows=4551 width=51) (actual time=38.519..45.196 rows=100 loops=1)                                                                              |
|                            Merge Cond: ((note.id)::text = (note_favorite_1."noteId")::text)                                                                                                                     |
|                            Buffers: shared hit=104 read=694 dirtied=2                                                                                                                                           |
|                            ->  Merge Anti Join  (cost=2766.37..5374.79 rows=4552 width=51) (actual time=38.484..45.145 rows=100 loops=1)                                                                        |
|                                  Merge Cond: ((note.id)::text = (user_note_pining_1."noteId")::text)                                                                                                            |
|                                  Buffers: shared hit=104 read=694 dirtied=2                                                                                                                                     |
|                                  ->  Index Scan using "PK_96d0c172a4fba276b1bbed43058" on note  (cost=0.43..2452.15 rows=4665 width=51) (actual time=0.067..6.490 rows=441 loops=1)                             |
|                                        Index Cond: (((id)::text > '9q826ao0qxml0000'::text) AND ((id)::text < '9twy4io0qxml0000'::text))                                                                        |
|                                        Filter: (("userHost" IS NOT NULL) AND ("replyId" IS NULL) AND ("renoteId" IS NULL) AND ("clippedCount" = 0) AND ("pageCount" = 0))                                       |
|                                        Rows Removed by Filter: 42                                                                                                                                               |
|                                        Buffers: shared hit=102 read=368                                                                                                                                         |
|                                  ->  Sort  (cost=2764.98..2837.41 rows=28973 width=17) (actual time=36.829..37.531 rows=11713 loops=1)                                                                          |
|                                        Sort Key: user_note_pining_1."noteId"                                                                                                                                    |
|                                        Sort Method: quicksort  Memory: 3032kB                                                                                                                                   |
|                                        Buffers: shared hit=2 read=326 dirtied=2                                                                                                                                 |
|                                        ->  Seq Scan on user_note_pining user_note_pining_1  (cost=0.00..617.73 rows=28973 width=17) (actual time=0.064..7.282 rows=28973 loops=1)                               |
|                                              Buffers: shared hit=2 read=326 dirtied=2                                                                                                                           |
|                            ->  Sort  (cost=24.76..25.49 rows=290 width=82) (actual time=0.026..0.026 rows=0 loops=1)                                                                                            |
|                                  Sort Key: note_favorite_1."noteId"                                                                                                                                             |
|                                  Sort Method: quicksort  Memory: 25kB                                                                                                                                           |
|                                  ->  Seq Scan on note_favorite note_favorite_1  (cost=0.00..12.90 rows=290 width=82) (actual time=0.012..0.012 rows=0 loops=1)                                                  |
|                      ->  Materialize  (cost=0.70..2416.18 rows=54 width=17) (actual time=0.003..0.264 rows=3590 loops=100)                                                                                      |
|                            Buffers: shared hit=404 read=737 dirtied=1                                                                                                                                           |
|                            ->  Nested Loop  (cost=0.70..2415.91 rows=54 width=17) (actual time=0.270..14.111 rows=3590 loops=1)                                                                                 |
|                                  Buffers: shared hit=404 read=737 dirtied=1                                                                                                                                     |
|                                  ->  Index Scan using "IDX_3252a5df8d5bbd16b281f7799e" on "user" user_1  (cost=0.29..43.87 rows=10 width=17) (actual time=0.065..0.217 rows=10 loops=1)                         |
|                                        Index Cond: (host IS NULL)                                                                                                                                               |
|                                        Buffers: shared hit=8 read=5 dirtied=1                                                                                                                                   |
|                                  ->  Index Only Scan using "IDX_ad0c221b25672daf2df320a817" on note_reaction note_reaction_1  (cost=0.42..235.93 rows=127 width=34) (actual time=0.028..1.361 rows=359 loops=10)|
|                                        Index Cond: ("userId" = (user_1.id)::text)                                                                                                                               |
|                                        Heap Fetches: 2291                                                                                                                                                       |
|                                        Buffers: shared hit=396 read=732                                                                                                                                         |
|          ->  Nested Loop  (cost=8.12..1096212.23 rows=1495 width=135) (actual time=0.049..10.272 rows=17 loops=5)                                                                                               |
|                Buffers: shared hit=2230 read=18                                                                                                                                                                 |
|                ->  WorkTable Scan on candidate_notes parent  (cost=0.00..20.00 rows=500 width=164) (actual time=0.008..0.013 rows=23 loops=5)                                                                   |
|                      Filter: "isRemovable"                                                                                                                                                                      |
|                      Rows Removed by Filter: 13                                                                                                                                                                 |
|                ->  Bitmap Heap Scan on note note_1  (cost=8.12..20.10 rows=3 width=69) (actual time=0.009..0.009 rows=1 loops=116)                                                                              |
|                      Recheck Cond: (((parent.id)::text = ("replyId")::text) OR ((parent.id)::text = ("renoteId")::text))                                                                                        |
|                      Heap Blocks: exact=84                                                                                                                                                                      |
|                      Buffers: shared hit=762 read=18                                                                                                                                                            |
|                      ->  BitmapOr  (cost=8.12..8.12 rows=3 width=0) (actual time=0.005..0.005 rows=0 loops=116)                                                                                                 |
|                            Buffers: shared hit=691 read=5                                                                                                                                                       |
|                            ->  Bitmap Index Scan on "IDX_17cb3553c700a4985dff5a30ff"  (cost=0.00..4.04 rows=1 width=0) (actual time=0.002..0.002 rows=0 loops=116)                                              |
|                                  Index Cond: (("replyId")::text = (parent.id)::text)                                                                                                                            |
|                                  Buffers: shared hit=346 read=2                                                                                                                                                 |
|                            ->  Bitmap Index Scan on "IDX_52ccc804d7c69037d558bac4c9"  (cost=0.00..4.07 rows=2 width=0) (actual time=0.002..0.002 rows=1 loops=116)                                              |
|                                  Index Cond: (("renoteId")::text = (parent.id)::text)                                                                                                                           |
|                                  Buffers: shared hit=345 read=3                                                                                                                                                 |
|                SubPlan 2                                                                                                                                                                                        |
|                  ->  Seq Scan on user_note_pining  (cost=0.00..617.73 rows=28973 width=32) (actual time=15.104..17.652 rows=28973 loops=1)                                                                      |
|                        Buffers: shared hit=328                                                                                                                                                                  |
|                SubPlan 4                                                                                                                                                                                        |
|                  ->  Seq Scan on note_favorite  (cost=0.00..12.90 rows=290 width=32) (actual time=0.004..0.004 rows=0 loops=1)                                                                                  |
|                SubPlan 6                                                                                                                                                                                        |
|                  ->  Nested Loop  (cost=4.78..2414.88 rows=54 width=32) (actual time=20.018..21.613 rows=3590 loops=1)                                                                                          |
|                        Buffers: shared hit=1140                                                                                                                                                                 |
|                        ->  Bitmap Heap Scan on "user"  (cost=4.37..42.85 rows=10 width=17) (actual time=19.899..19.923 rows=10 loops=1)                                                                         |
|                              Recheck Cond: (host IS NULL)                                                                                                                                                       |
|                              Heap Blocks: exact=10                                                                                                                                                              |
|                              Buffers: shared hit=12                                                                                                                                                             |
|                              ->  Bitmap Index Scan on "IDX_3252a5df8d5bbd16b281f7799e"  (cost=0.00..4.36 rows=10 width=0) (actual time=0.008..0.009 rows=10 loops=1)                                            |
|                                    Index Cond: (host IS NULL)                                                                                                                                                   |
|                                    Buffers: shared hit=2                                                                                                                                                        |
|                        ->  Index Only Scan using "IDX_ad0c221b25672daf2df320a817" on note_reaction  (cost=0.42..235.93 rows=127 width=34) (actual time=0.012..0.143 rows=359 loops=10)                          |
|                              Index Cond: ("userId" = ("user".id)::text)                                                                                                                                         |
|                              Heap Fetches: 2291                                                                                                                                                                 |
|                              Buffers: shared hit=1128                                                                                                                                                           |
|  ->  Merge Right Join  (cost=2130.80..10662.26 rows=566256 width=84) (actual time=745.881..745.927 rows=197 loops=1)                                                                                            |
|        Merge Cond: ((unremovable."rootId")::text = (candidate_notes."rootId")::text)                                                                                                                            |
|        Buffers: shared hit=2738 read=1449 dirtied=3                                                                                                                                                             |
|        ->  Sort  (cost=785.52..804.33 rows=7525 width=164) (actual time=745.746..745.749 rows=67 loops=1)                                                                                                       |
|              Sort Key: unremovable."rootId"                                                                                                                                                                     |
|              Sort Method: quicksort  Memory: 30kB                                                                                                                                                               |
|              Buffers: shared hit=2738 read=1449 dirtied=3                                                                                                                                                       |
|              ->  CTE Scan on candidate_notes unremovable  (cost=0.00..301.00 rows=7525 width=164) (actual time=694.402..745.667 rows=67 loops=1)                                                                |
|                    Filter: (NOT "isRemovable")                                                                                                                                                                  |
|                    Rows Removed by Filter: 116                                                                                                                                                                  |
|                    Buffers: shared hit=2738 read=1449 dirtied=3                                                                                                                                                 |
|        ->  Sort  (cost=1345.28..1382.91 rows=15050 width=165) (actual time=0.122..0.129 rows=197 loops=1)                                                                                                       |
|              Sort Key: candidate_notes."rootId"                                                                                                                                                                 |
|              Sort Method: quicksort  Memory: 39kB                                                                                                                                                               |
|              ->  CTE Scan on candidate_notes  (cost=0.00..301.00 rows=15050 width=165) (actual time=0.003..0.015 rows=183 loops=1)                                                                              |
|Planning:                                                                                                                                                                                                        |
|  Buffers: shared hit=636 read=27 dirtied=2                                                                                                                                                                      |
|Planning Time: 3.977 ms                                                                                                                                                                                          |
|JIT:                                                                                                                                                                                                             |
|  Functions: 88                                                                                                                                                                                                  |
|  Options: Inlining true, Optimization true, Expressions true, Deforming true                                                                                                                                    |
|  Timing: Generation 6.216 ms, Inlining 70.336 ms, Optimization 331.732 ms, Emission 240.336 ms, Total 648.621 ms                                                                                                |
|Execution Time: 799.098 ms                                                                                                                                                                                       |
+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+

after

+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|QUERY PLAN                                                                                                                                                                                                                 |
+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|HashAggregate  (cost=751404.38..751408.38 rows=400 width=84) (actual time=603.282..603.308 rows=183 loops=1)                                                                                                               |
|  Group Key: candidate_notes.id, (unremovable.id IS NULL)                                                                                                                                                                  |
|  Batches: 1  Memory Usage: 61kB                                                                                                                                                                                           |
|  Buffers: shared hit=11243 read=57                                                                                                                                                                                        |
|  CTE candidate_notes                                                                                                                                                                                                      |
|    ->  Recursive Union  (cost=14.09..736495.20 rows=15050 width=135) (actual time=526.154..602.894 rows=183 loops=1)                                                                                                      |
|          Buffers: shared hit=11243 read=57                                                                                                                                                                                |
|          ->  Limit  (cost=14.09..244.67 rows=100 width=70) (actual time=526.144..554.113 rows=100 loops=1)                                                                                                                |
|                Buffers: shared hit=8995 read=57                                                                                                                                                                           |
|                ->  Nested Loop Anti Join  (cost=14.09..10507.94 rows=4551 width=70) (actual time=6.776..34.736 rows=100 loops=1)                                                                                          |
|                      Join Filter: ((note_reaction_1."noteId")::text = (note.id)::text)                                                                                                                                    |
|                      Rows Removed by Join Filter: 359000                                                                                                                                                                  |
|                      Buffers: shared hit=8995 read=57                                                                                                                                                                     |
|                      ->  Merge Anti Join  (cost=13.38..4405.59 rows=4551 width=51) (actual time=4.568..5.913 rows=100 loops=1)                                                                                            |
|                            Merge Cond: ((note.id)::text = (note_favorite_1."noteId")::text)                                                                                                                               |
|                            Buffers: shared hit=7855 read=57                                                                                                                                                               |
|                            ->  Merge Anti Join  (cost=13.24..4344.97 rows=4552 width=51) (actual time=4.552..5.886 rows=100 loops=1)                                                                                      |
|                                  Merge Cond: ((note.id)::text = (user_note_pining_1."noteId")::text)                                                                                                                      |
|                                  Buffers: shared hit=7854 read=57                                                                                                                                                         |
|                                  ->  Index Scan using "PK_96d0c172a4fba276b1bbed43058" on note  (cost=0.43..2452.15 rows=4665 width=51) (actual time=0.099..1.098 rows=441 loops=1)                                       |
|                                        Index Cond: (((id)::text > '9q826ao0qxml0000'::text) AND ((id)::text < '9twy4io0qxml0000'::text))                                                                                  |
|                                        Filter: (("userHost" IS NOT NULL) AND ("replyId" IS NULL) AND ("renoteId" IS NULL) AND ("clippedCount" = 0) AND ("pageCount" = 0))                                                 |
|                                        Rows Removed by Filter: 42                                                                                                                                                         |
|                                        Buffers: shared hit=470                                                                                                                                                            |
|                                  ->  Index Only Scan using "IDX_68881008f7c3588ad7ecae471c" on user_note_pining user_note_pining_1  (cost=0.29..1807.60 rows=28973 width=17) (actual time=0.034..3.798 rows=11713 loops=1)|
|                                        Heap Fetches: 7642                                                                                                                                                                 |
|                                        Buffers: shared hit=7384 read=57                                                                                                                                                   |
|                            ->  Index Only Scan using "IDX_0e00498f180193423c992bc437" on note_favorite note_favorite_1  (cost=0.15..48.50 rows=290 width=82) (actual time=0.004..0.005 rows=0 loops=1)                    |
|                                  Heap Fetches: 0                                                                                                                                                                          |
|                                  Buffers: shared hit=1                                                                                                                                                                    |
|                      ->  Materialize  (cost=0.70..2416.18 rows=54 width=17) (actual time=0.001..0.136 rows=3590 loops=100)                                                                                                |
|                            Buffers: shared hit=1140                                                                                                                                                                       |
|                            ->  Nested Loop  (cost=0.70..2415.91 rows=54 width=17) (actual time=0.053..1.561 rows=3590 loops=1)                                                                                            |
|                                  Buffers: shared hit=1140                                                                                                                                                                 |
|                                  ->  Index Scan using "IDX_3252a5df8d5bbd16b281f7799e" on "user" user_1  (cost=0.29..43.87 rows=10 width=17) (actual time=0.015..0.027 rows=10 loops=1)                                   |
|                                        Index Cond: (host IS NULL)                                                                                                                                                         |
|                                        Buffers: shared hit=12                                                                                                                                                             |
|                                  ->  Index Only Scan using "IDX_ad0c221b25672daf2df320a817" on note_reaction note_reaction_1  (cost=0.42..235.93 rows=127 width=34) (actual time=0.005..0.130 rows=359 loops=10)          |
|                                        Index Cond: ("userId" = (user_1.id)::text)                                                                                                                                         |
|                                        Heap Fetches: 2291                                                                                                                                                                 |
|                                        Buffers: shared hit=1128                                                                                                                                                           |
|          ->  Nested Loop  (cost=8.12..73594.85 rows=1495 width=135) (actual time=0.022..9.729 rows=17 loops=5)                                                                                                            |
|                Buffers: shared hit=2248                                                                                                                                                                                   |
|                ->  WorkTable Scan on candidate_notes parent  (cost=0.00..20.00 rows=500 width=164) (actual time=0.006..0.011 rows=23 loops=5)                                                                             |
|                      Filter: "isRemovable"                                                                                                                                                                                |
|                      Rows Removed by Filter: 13                                                                                                                                                                           |
|                ->  Bitmap Heap Scan on note note_1  (cost=8.12..20.10 rows=3 width=69) (actual time=0.005..0.005 rows=1 loops=116)                                                                                        |
|                      Recheck Cond: (((parent.id)::text = ("replyId")::text) OR ((parent.id)::text = ("renoteId")::text))                                                                                                  |
|                      Heap Blocks: exact=84                                                                                                                                                                                |
|                      Buffers: shared hit=780                                                                                                                                                                              |
|                      ->  BitmapOr  (cost=8.12..8.12 rows=3 width=0) (actual time=0.004..0.004 rows=0 loops=116)                                                                                                           |
|                            Buffers: shared hit=696                                                                                                                                                                        |
|                            ->  Bitmap Index Scan on "IDX_17cb3553c700a4985dff5a30ff"  (cost=0.00..4.04 rows=1 width=0) (actual time=0.002..0.002 rows=0 loops=116)                                                        |
|                                  Index Cond: (("replyId")::text = (parent.id)::text)                                                                                                                                      |
|                                  Buffers: shared hit=348                                                                                                                                                                  |
|                            ->  Bitmap Index Scan on "IDX_52ccc804d7c69037d558bac4c9"  (cost=0.00..4.07 rows=2 width=0) (actual time=0.002..0.002 rows=1 loops=116)                                                        |
|                                  Index Cond: (("renoteId")::text = (parent.id)::text)                                                                                                                                     |
|                                  Buffers: shared hit=348                                                                                                                                                                  |
|                SubPlan 2                                                                                                                                                                                                  |
|                  ->  Seq Scan on user_note_pining  (cost=0.00..617.73 rows=28973 width=32) (actual time=15.741..18.194 rows=28973 loops=1)                                                                                |
|                        Buffers: shared hit=328                                                                                                                                                                            |
|                SubPlan 4                                                                                                                                                                                                  |
|                  ->  Seq Scan on note_favorite  (cost=0.00..12.90 rows=290 width=32) (actual time=0.003..0.003 rows=0 loops=1)                                                                                            |
|                SubPlan 6                                                                                                                                                                                                  |
|                  ->  Nested Loop  (cost=4.78..2414.88 rows=54 width=32) (actual time=19.737..21.325 rows=3590 loops=1)                                                                                                    |
|                        Buffers: shared hit=1140                                                                                                                                                                           |
|                        ->  Bitmap Heap Scan on "user"  (cost=4.37..42.85 rows=10 width=17) (actual time=19.641..19.664 rows=10 loops=1)                                                                                   |
|                              Recheck Cond: (host IS NULL)                                                                                                                                                                 |
|                              Heap Blocks: exact=10                                                                                                                                                                        |
|                              Buffers: shared hit=12                                                                                                                                                                       |
|                              ->  Bitmap Index Scan on "IDX_3252a5df8d5bbd16b281f7799e"  (cost=0.00..4.36 rows=10 width=0) (actual time=0.008..0.008 rows=10 loops=1)                                                      |
|                                    Index Cond: (host IS NULL)                                                                                                                                                             |
|                                    Buffers: shared hit=2                                                                                                                                                                  |
|                        ->  Index Only Scan using "IDX_ad0c221b25672daf2df320a817" on note_reaction  (cost=0.42..235.93 rows=127 width=34) (actual time=0.010..0.140 rows=359 loops=10)                                    |
|                              Index Cond: ("userId" = ("user".id)::text)                                                                                                                                                   |
|                              Heap Fetches: 2291                                                                                                                                                                           |
|                              Buffers: shared hit=1128                                                                                                                                                                     |
|  ->  Merge Right Join  (cost=2130.80..10662.26 rows=566256 width=84) (actual time=603.172..603.219 rows=197 loops=1)                                                                                                      |
|        Merge Cond: ((unremovable."rootId")::text = (candidate_notes."rootId")::text)                                                                                                                                      |
|        Buffers: shared hit=11243 read=57                                                                                                                                                                                  |
|        ->  Sort  (cost=785.52..804.33 rows=7525 width=164) (actual time=603.017..603.019 rows=67 loops=1)                                                                                                                 |
|              Sort Key: unremovable."rootId"                                                                                                                                                                               |
|              Sort Method: quicksort  Memory: 30kB                                                                                                                                                                         |
|              Buffers: shared hit=11243 read=57                                                                                                                                                                            |
|              ->  CTE Scan on candidate_notes unremovable  (cost=0.00..301.00 rows=7525 width=164) (actual time=554.322..602.962 rows=67 loops=1)                                                                          |
|                    Filter: (NOT "isRemovable")                                                                                                                                                                            |
|                    Rows Removed by Filter: 116                                                                                                                                                                            |
|                    Buffers: shared hit=11243 read=57                                                                                                                                                                      |
|        ->  Sort  (cost=1345.28..1382.91 rows=15050 width=165) (actual time=0.143..0.150 rows=197 loops=1)                                                                                                                 |
|              Sort Key: candidate_notes."rootId"                                                                                                                                                                           |
|              Sort Method: quicksort  Memory: 39kB                                                                                                                                                                         |
|              ->  CTE Scan on candidate_notes  (cost=0.00..301.00 rows=15050 width=165) (actual time=0.003..0.015 rows=183 loops=1)                                                                                        |
|Planning:                                                                                                                                                                                                                  |
|  Buffers: shared hit=131 read=5                                                                                                                                                                                           |
|Planning Time: 1.771 ms                                                                                                                                                                                                    |
|JIT:                                                                                                                                                                                                                       |
|  Functions: 82                                                                                                                                                                                                            |
|  Options: Inlining true, Optimization true, Expressions true, Deforming true                                                                                                                                              |
|  Timing: Generation 3.697 ms, Inlining 18.153 ms, Optimization 327.043 ms, Emission 209.601 ms, Total 558.495 ms                                                                                                          |
|Execution Time: 607.372 ms                                                                                                                                                                                                 |
+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+

Checklist

  • Read the contribution guide
  • Test working in a local environment
  • (If needed) Add story of storybook
  • (If needed) Update CHANGELOG.md
  • (If possible) Add tests

@dosubot dosubot Bot added the size:S This PR changes 10-29 lines, ignoring generated files. label May 29, 2026
@github-actions github-actions Bot added the packages/backend Server side specific issue/PR label May 29, 2026
@codecov
Copy link
Copy Markdown

codecov Bot commented May 30, 2026

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 24.89%. Comparing base (d74b646) to head (47a495a).

Additional details and impacted files
@@             Coverage Diff             @@
##           develop   #17511      +/-   ##
===========================================
- Coverage    24.92%   24.89%   -0.04%     
===========================================
  Files         1160     1160              
  Lines        39555    39553       -2     
  Branches     11016    11012       -4     
===========================================
- Hits          9861     9845      -16     
- Misses       23796    23807      +11     
- Partials      5898     5901       +3     

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.
  • 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

@github-actions
Copy link
Copy Markdown
Contributor

github-actions Bot commented May 30, 2026

このPRによるapi.jsonの差分
差分はありません。
Get diff files from Workflow Page

@github-actions
Copy link
Copy Markdown
Contributor

github-actions Bot commented May 30, 2026

Backend memory usage comparison

Before GC

Metric base (MB) head (MB) Diff (MB) Diff (%)
VmRSS 305.28 MB 307.64 MB +2.36 MB +0.77%
VmHWM 305.28 MB 307.64 MB +2.36 MB +0.77%
VmSize 23170.32 MB 23173.69 MB +3.37 MB +0.01%
VmData 1370.26 MB 1374.12 MB +3.86 MB +0.28%

After GC

Metric base (MB) head (MB) Diff (MB) Diff (%)
VmRSS 305.36 MB 307.70 MB +2.33 MB +0.76%
VmHWM 305.36 MB 307.70 MB +2.33 MB +0.76%
VmSize 23170.40 MB 23173.69 MB +3.29 MB +0.01%
VmData 1370.34 MB 1374.12 MB +3.78 MB +0.27%

After Request

Metric base (MB) head (MB) Diff (MB) Diff (%)
VmRSS 305.84 MB 308.08 MB +2.24 MB +0.73%
VmHWM 305.84 MB 308.08 MB +2.24 MB +0.73%
VmSize 23170.48 MB 23173.69 MB +3.20 MB +0.01%
VmData 1370.50 MB 1374.12 MB +3.61 MB +0.26%

See workflow logs for details

@syuilo syuilo merged commit 2b016d6 into misskey-dev:develop May 30, 2026
39 of 41 checks passed
@syuilo
Copy link
Copy Markdown
Member

syuilo commented May 30, 2026

👍

@github-project-automation github-project-automation Bot moved this from Todo to Done in [実験中] 管理用 May 30, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

packages/backend Server side specific issue/PR size:S This PR changes 10-29 lines, ignoring generated files.

Projects

Development

Successfully merging this pull request may close these issues.

[CleanRemoteNotes] 検索対象テーブルに不足しているindexを追加 リモートノートクリーナーがタイムアウトする

2 participants