Postgresqlくんなんでや…
explain SELECT c."userId" as user, d.m as last FROM ( SELECT DISTINCT ON (f."followeeId") f."followeeId" AS "userId" FROM "following" f JOIN "note" n ON n."userId" = f."followeeId" WHERE f."followerId" = '9g2o6eycu3' AND n."id" > '9zxmywxg1y' AND n."visibility" <> 'specified' AND COALESCE(n."renoteId", 'x') = 'x' AND COALESCE(n."replyId", 'x') = 'x' ORDER BY f."followeeId", n."id" DESC) AS c LEFT JOIN LATERAL ( SELECT "id" AS m FROM "note" WHERE "userId" = c."userId" AND "id" <= '9zxmywxg1y' AND note."visibility" <> 'specified' AND COALESCE(note."renoteId", 'x') = 'x' ORDER BY "id" DESC LIMIT 1) AS d ON true ORDER BY d.m ASC NULLS FIRST OFFSET 0 LIMIT 10;
=>
-> Index Scan Backward using idx_per_user_notes on note (cost=0.56..22146.90 rows=28 width=11)
Index Cond: ((("userId")::text = (f."followeeId")::text) AND ((id)::text <= '9zxmywxg1y'::text))
explain SELECT c."userId" as user, d.m as last FROM ( SELECT DISTINCT ON (f."followeeId") f."followeeId" AS "userId" FROM "following" f JOIN "note" n ON n."userId" = f."followeeId" WHERE f."followerId" = '9g2o6eycu3' AND n."id" > '9zxmywxg1y' AND n."visibility" <> 'specified' AND COALESCE(n."renoteId", 'x') = 'x' AND COALESCE(n."replyId", 'x') = 'x' ORDER BY f."followeeId", n."id" DESC) AS c LEFT JOIN LATERAL ( SELECT "id" AS m FROM "note" WHERE "userId" = c."userId" AND "id" <= '9zxmywxg1y' AND note."visibility" <> 'specified' AND COALESCE(note."renoteId", 'x') = 'x' AND COALESCE(note."replyId", 'y') = 'y' ORDER BY "id" DESC LIMIT 1) AS d ON true ORDER BY d.m ASC NULLS FIRST OFFSET 0 LIMIT 10;
=>
-> Index Scan using "IDX_5b87d9d19127bd5d92026017a7" on note (cost=0.56..21357.10 rows=1 width=11)
Index Cond: (("userId")::text = (f."followeeId")::text)