独自の解決策といっても、Statusテーブルに「メディアあるよ」のフラグを追加するくらいしか思いつかないんだけど、データベースのマイグレーションはMastodon公式の対策とかぶったときに面倒になりそうなのでやりたくない。。
今はおとなしくあっちの回答を待つつもりです
Conversation
Notices
-
雪あすか🔞 (askyq@kmy.blue)'s status on Friday, 07-Apr-2023 14:42:12 JST 雪あすか🔞 -
tateisu :force::r_9a: (tateisu@mastodon.juggler.jp)'s status on Friday, 07-Apr-2023 14:42:12 JST tateisu :force::r_9a: @askyq media_attachments テーブルにstatus_idで引けるインデクスがあるので、おそらくそのようなフラグは必要ありません。 https://github.com/mastodon/mastodon/blob/main/db/schema.rb#L594
-
雪あすか🔞 (askyq@kmy.blue)'s status on Friday, 07-Apr-2023 14:42:12 JST 雪あすか🔞 @tateisu ありがとうございます。
あすか素人なので思いつきでしか発言できないのですが、メディアタイムラインの表示は現状、下記の処理でStatusを絞り込んでいます。app/models/public_feed.rb
def media_only_scope
Status.joins(:media_attachments).group(:id)
endメディアのテーブルをJoinしたうえでGroup Byしているのですが、これらは低速なんじゃないかと思います。Joinしなくてもいいようにこのフラグつけたほうがいいんじゃないかと思ってました。。
In conversation permalink -
tateisu :force::r_9a: (tateisu@mastodon.juggler.jp)'s status on Friday, 07-Apr-2023 14:42:12 JST tateisu :force::r_9a: @askyq mastodonにデフォルトでpgHero入ってて、Slow Queryの一覧が見れると思います。
In conversation permalink -
tateisu :force::r_9a: (tateisu@mastodon.juggler.jp)'s status on Friday, 07-Apr-2023 14:42:12 JST tateisu :force::r_9a: @askyq ここのクエリ一覧に出ないクエリは通常は最適化する必要がありませんし、最適化する場合にはバインドパラメータを適当に補ってからpsql で explain analyze することで問い合わせ計画が妥当かどうか調べることができます。
In conversation permalink -
のえる (noellabo@fedibird.com)'s status on Friday, 07-Apr-2023 14:42:12 JST のえる なんでこれこんなに遅いんだろう? と思ったら、先にやっといた方がいいです。統計情報が実態と乖離して遅くなってることがあって、コードみて原因不明だったものが一発でなおったりします。
で、そんなに遅いクエリーだったかな……。ウチの連合でメディアの有無はよく切り替えるけど、重くはないなあ。
In conversation permalink -
雪あすか🔞 (askyq@kmy.blue)'s status on Friday, 07-Apr-2023 14:45:48 JST 雪あすか🔞 @noellabo @tateisu
ありがとうございます。
うちのサーバーでは、連合タイムラインはすぐ結果を返します。重いのはローカルだけです。In conversation permalink -
のえる (noellabo@fedibird.com)'s status on Friday, 07-Apr-2023 14:45:48 JST のえる In conversation permalink
-