独自の解決策といっても、Statusテーブルに「メディアあるよ」のフラグを追加するくらいしか思いつかないんだけど、データベースのマイグレーションはMastodon公式の対策とかぶったときに面倒になりそうなのでやりたくない。。
今はおとなしくあっちの回答を待つつもりです
Conversation
Notices
-
Embed this notice
雪あすか🔞 (askyq@kmy.blue)'s status on Friday, 07-Apr-2023 14:42:12 JST 雪あすか🔞 -
Embed this notice
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
-
Embed this notice
雪あすか🔞 (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 -
Embed this notice
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 -
Embed this notice
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 -
Embed this notice
のえる (noellabo@fedibird.com)'s status on Friday, 07-Apr-2023 14:42:12 JST のえる なんでこれこんなに遅いんだろう? と思ったら、先にやっといた方がいいです。統計情報が実態と乖離して遅くなってることがあって、コードみて原因不明だったものが一発でなおったりします。
で、そんなに遅いクエリーだったかな……。ウチの連合でメディアの有無はよく切り替えるけど、重くはないなあ。
In conversation permalink -
Embed this notice
雪あすか🔞 (askyq@kmy.blue)'s status on Friday, 07-Apr-2023 14:45:48 JST 雪あすか🔞 @noellabo @tateisu
ありがとうございます。
うちのサーバーでは、連合タイムラインはすぐ結果を返します。重いのはローカルだけです。In conversation permalink -
Embed this notice
のえる (noellabo@fedibird.com)'s status on Friday, 07-Apr-2023 14:45:48 JST のえる In conversation permalink
-
Embed this notice