フォロー

ハッシュタグタイムラインの取得クエリが遅いのは、該当のハッシュタグが使われている件数が一定以上多い場合にwork_memを超えてしまい、Bitmap Index Scanした後にexactではなくlossyで処理されて、Bitmap Heap Scan のRecheckが走ってしまうため。

何を言っているかわからないと思うのでw、詳しい人が説明してくれてる記事をみて……。
taityo-diary.hatenablog.jp/ent

work_memはそうそう大きくできないので、frfrとかabyss_fun、theboss_techのような件数の多いタグに対応するのは難しい。

んで、私が今回とったアプローチは、通常は最後に行うページング用のパラメータを、事前にハッシュタグを抽出する際に適用して処理対象件数を減らすというもの。とりあえず200件だけ取得してあとは無視するようにしたので、取得した200件がロック対象だった場合にタイムラインそれ以上遡れないという問題がある。

まぁ何にしても快適にはなった。

ただ、ちょっとこれを公式にぶち込むのはあんまりなので、もっと洗練させたい。

ログインして会話に参加
Fedibird

様々な目的に使える、日本の汎用マストドンサーバーです。安定した利用環境と、多数の独自機能を提供しています。