Mastodonのstatusってuriとurl表現があるのね。添付の例だとidがuriでurlが別にある。
/users/noellabo
/@noellabo
の違いなんだけど。
実はuri(id)にはインデックス張ってあるんだけど、urlにはインデックスを張ってないのです。
ユーザーが入力したり、hrefの飛び先に指定されるのはurlの方で、我々はどちらかというとurlを使います。
そして、これを検索欄に入れてDBから引っぱってこようとすると、インデックスが無いから実はメチャクチャ重いのです。
PleromaやMisskeyが、uriとurlをどう表現するか。他のActivityPubのサーバがどう表現するかは、それぞれの勝手なので予想がつきませんし、特定のルールをこちらで想定できません。これは仕方ない。
でもMastodonの場合はパターンわかっているので、事前加工してuri検索させちゃおうって工夫をThibGさんが仕込んでます。
https://github.com/tootsuite/mastodon/pull/14856
ちなみにFedibirdは勝手にインデックス張りました。3GB近くあります(白目)。
以前、お知らせにurl書くとメッチャ重くなるって不具合ありましたが、これもインデックスの効いてないurlで検索かけるのが原因でした。