Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Clips are slow #8413

Closed
nullobsi opened this issue Mar 15, 2022 · 6 comments · Fixed by #8518
Closed

Clips are slow #8413

nullobsi opened this issue Mar 15, 2022 · 6 comments · Fixed by #8518
Labels
⚠️bug? This might be a bug packages/backend Server side specific issue/PR 🐢Performance Efficiency related issue/PR

Comments

@nullobsi
Copy link
Contributor

💡 Summary

Viewing a clip is very slow. Even with a clip with just one note in it, it takes a bit, and with the new 10 second limit it sometimes fails entirely.

🥰 Expected Behavior

Viewing a clip should be a lot quicker.

🤬 Actual Behavior

Attempting to view a clip takes a while. I think it's related to the size of the database and the power of the machine.

📝 Steps to Reproduce

  1. View a clip
  2. Takes a long time to load posts if it doesn't fail

📌 Environment

Misskey latest Master with some patches ( https://github.com/nullobsi/misskey )

Your OS: android 12
Your browser: Bromite

Notes: I can't reproduce this on some other instances I've tried. Is there a way to debug DB queries?

@nullobsi nullobsi added the ⚠️bug? This might be a bug label Mar 15, 2022
@Johann150 Johann150 added 🐢Performance Efficiency related issue/PR packages/backend Server side specific issue/PR labels Mar 17, 2022
@ThatOneCalculator
Copy link
Contributor

I can't reproduce on my instance. Have you checked Postgres logs to make sure there isn't another problem at play?

@nullobsi
Copy link
Contributor Author

I did some analysis with Johann on fedi, and the queries generated by the ORM are simply super complicated. It has like 6 left joins and calls over to get even the md5 hashes of the banner of each user in the clips; its much faster if I write the query manually to just get the note properties.
It eats up 100% of my cpu for a bit. I think it's just the comparison in processing power.
https://genau.qwertqwefsday.eu/notes/8xxhm84myw

@ThatOneCalculator
Copy link
Contributor

dang then yea that should be fixed

@nullobsi
Copy link
Contributor Author

yep

long db query ``` SELECT DISTINCT "distinctAlias"."note_id" as "ids_note_id", "distinctAlias"."note_id" FROM ( SELECT "note"."id" AS "note_id", "note"."createdAt" AS "note_createdAt", "note"."replyId" AS "note_replyId", "note"."renoteId" AS "note_renoteId", "note"."threadId" AS "note_threadId", "note"."text" AS "note_text", "note"."name" AS "note_name", "note"."cw" AS "note_cw", "note"."userId" AS "note_userId", "note"."localOnly" AS "note_localOnly", "note"."renoteCount" AS "note_renoteCount", "note"."repliesCount" AS "note_repliesCount", "note"."reactions" AS "note_reactions", "note"."visibility" AS "note_visibility", "note"."uri" AS "note_uri", "note"."url" AS "note_url", "note"."fileIds" AS "note_fileIds", "note"."attachedFileTypes" AS "note_attachedFileTypes", "note"."visibleUserIds" AS "note_visibleUserIds", "note"."mentions" AS "note_mentions", "note"."mentionedRemoteUsers" AS "note_mentionedRemoteUsers", "note"."emojis" AS "note_emojis", "note"."tags" AS "note_tags", "note"."hasPoll" AS "note_hasPoll", "note"."channelId" AS "note_channelId", "note"."userHost" AS "note_userHost", "note"."replyUserId" AS "note_replyUserId", "note"."replyUserHost" AS "note_replyUserHost", "note"."renoteUserId" AS "note_renoteUserId", "note"."renoteUserHost" AS "note_renoteUserHost", "user"."id" AS "user_id", "user"."createdAt" AS "user_createdAt", "user"."updatedAt" AS "user_updatedAt", "user"."lastFetchedAt" AS "user_lastFetchedAt", "user"."lastActiveDate" AS "user_lastActiveDate", "user"."hideOnlineStatus" AS "user_hideOnlineStatus", "user"."username" AS "user_username", "user"."name" AS "user_name", "user"."followersCount" AS "user_followersCount", "user"."followingCount" AS "user_followingCount", "user"."notesCount" AS "user_notesCount", "user"."avatarId" AS "user_avatarId", "user"."bannerId" AS "user_bannerId", "user"."tags" AS "user_tags", "user"."isSuspended" AS "user_isSuspended", "user"."isSilenced" AS "user_isSilenced", "user"."isLocked" AS "user_isLocked", "user"."isBot" AS "user_isBot", "user"."isCat" AS "user_isCat", "user"."isAdmin" AS "user_isAdmin", "user"."isModerator" AS "user_isModerator", "user"."isExplorable" AS "user_isExplorable", "user"."isDeleted" AS "user_isDeleted", "user"."emojis" AS "user_emojis", "user"."host" AS "user_host", "user"."inbox" AS "user_inbox", "user"."sharedInbox" AS "user_sharedInbox", "user"."featured" AS "user_featured", "user"."uri" AS "user_uri", "user"."followersUri" AS "user_followersUri", "user"."showTimelineReplies" AS "user_showTimelineReplies", "user"."token" AS "user_token", "avatar"."id" AS "avatar_id", "avatar"."createdAt" AS "avatar_createdAt", "avatar"."userId" AS "avatar_userId", "avatar"."userHost" AS "avatar_userHost", "avatar"."md5" AS "avatar_md5", "avatar"."name" AS "avatar_name", "avatar"."type" AS "avatar_type", "avatar"."size" AS "avatar_size", "avatar"."comment" AS "avatar_comment", "avatar"."blurhash" AS "avatar_blurhash", "avatar"."properties" AS "avatar_properties", "avatar"."storedInternal" AS "avatar_storedInternal", "avatar"."url" AS "avatar_url", "avatar"."thumbnailUrl" AS "avatar_thumbnailUrl", "avatar"."webpublicUrl" AS "avatar_webpublicUrl", "avatar"."webpublicType" AS "avatar_webpublicType", "avatar"."accessKey" AS "avatar_accessKey", "avatar"."thumbnailAccessKey" AS "avatar_thumbnailAccessKey", "avatar"."webpublicAccessKey" AS "avatar_webpublicAccessKey", "avatar"."uri" AS "avatar_uri", "avatar"."src" AS "avatar_src", "avatar"."folderId" AS "avatar_folderId", "avatar"."isSensitive" AS "avatar_isSensitive", "avatar"."isLink" AS "avatar_isLink", "banner"."id" AS "banner_id", "banner"."createdAt" AS "banner_createdAt", "banner"."userId" AS "banner_userId", "banner"."userHost" AS "banner_userHost", "banner"."md5" AS "banner_md5", "banner"."name" AS "banner_name", "banner"."type" AS "banner_type", "banner"."size" AS "banner_size", "banner"."comment" AS "banner_comment", "banner"."blurhash" AS "banner_blurhash", "banner"."properties" AS "banner_properties", "banner"."storedInternal" AS "banner_storedInternal", "banner"."url" AS "banner_url", "banner"."thumbnailUrl" AS "banner_thumbnailUrl", "banner"."webpublicUrl" AS "banner_webpublicUrl", "banner"."webpublicType" AS "banner_webpublicType", "banner"."accessKey" AS "banner_accessKey", "banner"."thumbnailAccessKey" AS "banner_thumbnailAccessKey", "banner"."webpublicAccessKey" AS "banner_webpublicAccessKey", "banner"."uri" AS "banner_uri", "banner"."src" AS "banner_src", "banner"."folderId" AS "banner_folderId", "banner"."isSensitive" AS "banner_isSensitive", "banner"."isLink" AS "banner_isLink", "reply"."id" AS "reply_id", "reply"."createdAt" AS "reply_createdAt", "reply"."replyId" AS "reply_replyId", "reply"."renoteId" AS "reply_renoteId", "reply"."threadId" AS "reply_threadId", "reply"."text" AS "reply_text", "reply"."name" AS "reply_name", "reply"."cw" AS "reply_cw", "reply"."userId" AS "reply_userId", "reply"."localOnly" AS "reply_localOnly", "reply"."renoteCount" AS "reply_renoteCount", "reply"."repliesCount" AS "reply_repliesCount", "reply"."reactions" AS "reply_reactions", "reply"."visibility" AS "reply_visibility", "reply"."uri" AS "reply_uri", "reply"."url" AS "reply_url", "reply"."fileIds" AS "reply_fileIds", "reply"."attachedFileTypes" AS "reply_attachedFileTypes", "reply"."visibleUserIds" AS "reply_visibleUserIds", "reply"."mentions" AS "reply_mentions", "reply"."mentionedRemoteUsers" AS "reply_mentionedRemoteUsers", "reply"."emojis" AS "reply_emojis", "reply"."tags" AS "reply_tags", "reply"."hasPoll" AS "reply_hasPoll", "reply"."channelId" AS "reply_channelId", "reply"."userHost" AS "reply_userHost", "reply"."replyUserId" AS "reply_replyUserId", "reply"."replyUserHost" AS "reply_replyUserHost", "reply"."renoteUserId" AS "reply_renoteUserId", "reply"."renoteUserHost" AS "reply_renoteUserHost", "renote"."id" AS "renote_id", "renote"."createdAt" AS "renote_createdAt", "renote"."replyId" AS "renote_replyId", "renote"."renoteId" AS "renote_renoteId", "renote"."threadId" AS "renote_threadId", "renote"."text" AS "renote_text", "renote"."name" AS "renote_name", "renote"."cw" AS "renote_cw", "renote"."userId" AS "renote_userId", "renote"."localOnly" AS "renote_localOnly", "renote"."renoteCount" AS "renote_renoteCount", "renote"."repliesCount" AS "renote_repliesCount", "renote"."reactions" AS "renote_reactions", "renote"."visibility" AS "renote_visibility", "renote"."uri" AS "renote_uri", "renote"."url" AS "renote_url", "renote"."fileIds" AS "renote_fileIds", "renote"."attachedFileTypes" AS "renote_attachedFileTypes", "renote"."visibleUserIds" AS "renote_visibleUserIds", "renote"."mentions" AS "renote_mentions", "renote"."mentionedRemoteUsers" AS "renote_mentionedRemoteUsers", "renote"."emojis" AS "renote_emojis", "renote"."tags" AS "renote_tags", "renote"."hasPoll" AS "renote_hasPoll", "renote"."channelId" AS "renote_channelId", "renote"."userHost" AS "renote_userHost", "renote"."replyUserId" AS "renote_replyUserId", "renote"."replyUserHost" AS "renote_replyUserHost", "renote"."renoteUserId" AS "renote_renoteUserId", "renote"."renoteUserHost" AS "renote_renoteUserHost", "replyUser"."id" AS "replyUser_id", "replyUser"."createdAt" AS "replyUser_createdAt", "replyUser"."updatedAt" AS "replyUser_updatedAt", "replyUser"."lastFetchedAt" AS "replyUser_lastFetchedAt", "replyUser"."lastActiveDate" AS "replyUser_lastActiveDate", "replyUser"."hideOnlineStatus" AS "replyUser_hideOnlineStatus", "replyUser"."username" AS "replyUser_username", "replyUser"."name" AS "replyUser_name", "replyUser"."followersCount" AS "replyUser_followersCount", "replyUser"."followingCount" AS "replyUser_followingCount", "replyUser"."notesCount" AS "replyUser_notesCount", "replyUser"."avatarId" AS "replyUser_avatarId", "replyUser"."bannerId" AS "replyUser_bannerId", "replyUser"."tags" AS "replyUser_tags", "replyUser"."isSuspended" AS "replyUser_isSuspended", "replyUser"."isSilenced" AS "replyUser_isSilenced", "replyUser"."isLocked" AS "replyUser_isLocked", "replyUser"."isBot" AS "replyUser_isBot", "replyUser"."isCat" AS "replyUser_isCat", "replyUser"."isAdmin" AS "replyUser_isAdmin", "replyUser"."isModerator" AS "replyUser_isModerator", "replyUser"."isExplorable" AS "replyUser_isExplorable", "replyUser"."isDeleted" AS "replyUser_isDeleted", "replyUser"."emojis" AS "replyUser_emojis", "replyUser"."host" AS "replyUser_host", "replyUser"."inbox" AS "replyUser_inbox", "replyUser"."sharedInbox" AS "replyUser_sharedInbox", "replyUser"."featured" AS "replyUser_featured", "replyUser"."uri" AS "replyUser_uri", "replyUser"."followersUri" AS "replyUser_followersUri", "replyUser"."showTimelineReplies" AS "replyUser_showTimelineReplies", "replyUser"."token" AS "replyUser_token", "replyUserAvatar"."id" AS "replyUserAvatar_id", "replyUserAvatar"."createdAt" AS "replyUserAvatar_createdAt", "replyUserAvatar"."userId" AS "replyUserAvatar_userId", "replyUserAvatar"."userHost" AS "replyUserAvatar_userHost", "replyUserAvatar"."md5" AS "replyUserAvatar_md5", "replyUserAvatar"."name" AS "replyUserAvatar_name", "replyUserAvatar"."type" AS "replyUserAvatar_type", "replyUserAvatar"."size" AS "replyUserAvatar_size", "replyUserAvatar"."comment" AS "replyUserAvatar_comment", "replyUserAvatar"."blurhash" AS "replyUserAvatar_blurhash", "replyUserAvatar"."properties" AS "replyUserAvatar_properties", "replyUserAvatar"."storedInternal" AS "replyUserAvatar_storedInternal", "replyUserAvatar"."url" AS "replyUserAvatar_url", "replyUserAvatar"."thumbnailUrl" AS "replyUserAvatar_thumbnailUrl", "replyUserAvatar"."webpublicUrl" AS "replyUserAvatar_webpublicUrl", "replyUserAvatar"."webpublicType" AS "replyUserAvatar_webpublicType", "replyUserAvatar"."accessKey" AS "replyUserAvatar_accessKey", "replyUserAvatar"."thumbnailAccessKey" AS "replyUserAvatar_thumbnailAccessKey", "replyUserAvatar"."webpublicAccessKey" AS "replyUserAvatar_webpublicAccessKey", "replyUserAvatar"."uri" AS "replyUserAvatar_uri", "replyUserAvatar"."src" AS "replyUserAvatar_src", "replyUserAvatar"."folderId" AS "replyUserAvatar_folderId", "replyUserAvatar"."isSensitive" AS "replyUserAvatar_isSensitive", "replyUserAvatar"."isLink" AS "replyUserAvatar_isLink", "replyUserBanner"."id" AS "replyUserBanner_id", "replyUserBanner"."createdAt" AS "replyUserBanner_createdAt", "replyUserBanner"."userId" AS "replyUserBanner_userId", "replyUserBanner"."userHost" AS "replyUserBanner_userHost", "replyUserBanner"."md5" AS "replyUserBanner_md5", "replyUserBanner"."name" AS "replyUserBanner_name", "replyUserBanner"."type" AS "replyUserBanner_type", "replyUserBanner"."size" AS "replyUserBanner_size", "replyUserBanner"."comment" AS "replyUserBanner_comment", "replyUserBanner"."blurhash" AS "replyUserBanner_blurhash", "replyUserBanner"."properties" AS "replyUserBanner_properties", "replyUserBanner"."storedInternal" AS "replyUserBanner_storedInternal", "replyUserBanner"."url" AS "replyUserBanner_url", "replyUserBanner"."thumbnailUrl" AS "replyUserBanner_thumbnailUrl", "replyUserBanner"."webpublicUrl" AS "replyUserBanner_webpublicUrl", "replyUserBanner"."webpublicType" AS "replyUserBanner_webpublicType", "replyUserBanner"."accessKey" AS "replyUserBanner_accessKey", "replyUserBanner"."thumbnailAccessKey" AS "replyUserBanner_thumbnailAccessKey", "replyUserBanner"."webpublicAccessKey" AS "replyUserBanner_webpublicAccessKey", "replyUserBanner"."uri" AS "replyUserBanner_uri", "replyUserBanner"."src" AS "replyUserBanner_src", "replyUserBanner"."folderId" AS "replyUserBanner_folderId", "replyUserBanner"."isSensitive" AS "replyUserBanner_isSensitive", "replyUserBanner"."isLink" AS "replyUserBanner_isLink", "renoteUser"."id" AS "renoteUser_id", "renoteUser"."createdAt" AS "renoteUser_createdAt", "renoteUser"."updatedAt" AS "renoteUser_updatedAt", "renoteUser"."lastFetchedAt" AS "renoteUser_lastFetchedAt", "renoteUser"."lastActiveDate" AS "renoteUser_lastActiveDate", "renoteUser"."hideOnlineStatus" AS "renoteUser_hideOnlineStatus", "renoteUser"."username" AS "renoteUser_username", "renoteUser"."name" AS "renoteUser_name", "renoteUser"."followersCount" AS "renoteUser_followersCount", "renoteUser"."followingCount" AS "renoteUser_followingCount", "renoteUser"."notesCount" AS "renoteUser_notesCount", "renoteUser"."avatarId" AS "renoteUser_avatarId", "renoteUser"."bannerId" AS "renoteUser_bannerId", "renoteUser"."tags" AS "renoteUser_tags", "renoteUser"."isSuspended" AS "renoteUser_isSuspended", "renoteUser"."isSilenced" AS "renoteUser_isSilenced", "renoteUser"."isLocked" AS "renoteUser_isLocked", "renoteUser"."isBot" AS "renoteUser_isBot", "renoteUser"."isCat" AS "renoteUser_isCat", "renoteUser"."isAdmin" AS "renoteUser_isAdmin", "renoteUser"."isModerator" AS "renoteUser_isModerator", "renoteUser"."isExplorable" AS "renoteUser_isExplorable", "renoteUser"."isDeleted" AS "renoteUser_isDeleted", "renoteUser"."emojis" AS "renoteUser_emojis", "renoteUser"."host" AS "renoteUser_host", "renoteUser"."inbox" AS "renoteUser_inbox", "renoteUser"."sharedInbox" AS "renoteUser_sharedInbox", "renoteUser"."featured" AS "renoteUser_featured", "renoteUser"."uri" AS "renoteUser_uri", "renoteUser"."followersUri" AS "renoteUser_followersUri", "renoteUser"."showTimelineReplies" AS "renoteUser_showTimelineReplies", "renoteUser"."token" AS "renoteUser_token", "renoteUserAvatar"."id" AS "renoteUserAvatar_id", "renoteUserAvatar"."createdAt" AS "renoteUserAvatar_createdAt", "renoteUserAvatar"."userId" AS "renoteUserAvatar_userId", "renoteUserAvatar"."userHost" AS "renoteUserAvatar_userHost", "renoteUserAvatar"."md5" AS "renoteUserAvatar_md5", "renoteUserAvatar"."name" AS "renoteUserAvatar_name", "renoteUserAvatar"."type" AS "renoteUserAvatar_type", "renoteUserAvatar"."size" AS "renoteUserAvatar_size", "renoteUserAvatar"."comment" AS "renoteUserAvatar_comment", "renoteUserAvatar"."blurhash" AS "renoteUserAvatar_blurhash", "renoteUserAvatar"."properties" AS "renoteUserAvatar_properties", "renoteUserAvatar"."storedInternal" AS "renoteUserAvatar_storedInternal", "renoteUserAvatar"."url" AS "renoteUserAvatar_url", "renoteUserAvatar"."thumbnailUrl" AS "renoteUserAvatar_thumbnailUrl", "renoteUserAvatar"."webpublicUrl" AS "renoteUserAvatar_webpublicUrl", "renoteUserAvatar"."webpublicType" AS "renoteUserAvatar_webpublicType", "renoteUserAvatar"."accessKey" AS "renoteUserAvatar_accessKey", "renoteUserAvatar"."thumbnailAccessKey" AS "renoteUserAvatar_thumbnailAccessKey", "renoteUserAvatar"."webpublicAccessKey" AS "renoteUserAvatar_webpublicAccessKey", "renoteUserAvatar"."uri" AS "renoteUserAvatar_uri", "renoteUserAvatar"."src" AS "renoteUserAvatar_src", "renoteUserAvatar"."folderId" AS "renoteUserAvatar_folderId", "renoteUserAvatar"."isSensitive" AS "renoteUserAvatar_isSensitive", "renoteUserAvatar"."isLink" AS "renoteUserAvatar_isLink", "renoteUserBanner"."id" AS "renoteUserBanner_id", "renoteUserBanner"."createdAt" AS "renoteUserBanner_createdAt", "renoteUserBanner"."userId" AS "renoteUserBanner_userId", "renoteUserBanner"."userHost" AS "renoteUserBanner_userHost", "renoteUserBanner"."md5" AS "renoteUserBanner_md5", "renoteUserBanner"."name" AS "renoteUserBanner_name", "renoteUserBanner"."type" AS "renoteUserBanner_type", "renoteUserBanner"."size" AS "renoteUserBanner_size", "renoteUserBanner"."comment" AS "renoteUserBanner_comment", "renoteUserBanner"."blurhash" AS "renoteUserBanner_blurhash", "renoteUserBanner"."properties" AS "renoteUserBanner_properties", "renoteUserBanner"."storedInternal" AS "renoteUserBanner_storedInternal", "renoteUserBanner"."url" AS "renoteUserBanner_url", "renoteUserBanner"."thumbnailUrl" AS "renoteUserBanner_thumbnailUrl", "renoteUserBanner"."webpublicUrl" AS "renoteUserBanner_webpublicUrl", "renoteUserBanner"."webpublicType" AS "renoteUserBanner_webpublicType", "renoteUserBanner"."accessKey" AS "renoteUserBanner_accessKey", "renoteUserBanner"."thumbnailAccessKey" AS "renoteUserBanner_thumbnailAccessKey", "renoteUserBanner"."webpublicAccessKey" AS "renoteUserBanner_webpublicAccessKey", "renoteUserBanner"."uri" AS "renoteUserBanner_uri", "renoteUserBanner"."src" AS "renoteUserBanner_src", "renoteUserBanner"."folderId" AS "renoteUserBanner_folderId", "renoteUserBanner"."isSensitive" AS "renoteUserBanner_isSensitive", "renoteUserBanner"."isLink" AS "renoteUserBanner_isLink" FROM "note" "note" INNER JOIN "user" "user" ON "user"."id" = "note"."userId" LEFT JOIN "drive_file" "avatar" ON "avatar"."id" = "user"."avatarId" LEFT JOIN "drive_file" "banner" ON "banner"."id" = "user"."bannerId" LEFT JOIN "note" "reply" ON "reply"."id" = "note"."replyId" LEFT JOIN "note" "renote" ON "renote"."id" = "note"."renoteId" LEFT JOIN "user" "replyUser" ON "replyUser"."id" = "reply"."userId" LEFT JOIN "drive_file" "replyUserAvatar" ON "replyUserAvatar"."id" = "replyUser"."avatarId" LEFT JOIN "drive_file" "replyUserBanner" ON "replyUserBanner"."id" = "replyUser"."bannerId" LEFT JOIN "user" "renoteUser" ON "renoteUser"."id" = "renote"."userId" LEFT JOIN "drive_file" "renoteUserAvatar" ON "renoteUserAvatar"."id" = "renoteUser"."avatarId" LEFT JOIN "drive_file" "renoteUserBanner" ON "renoteUserBanner"."id" = "renoteUser"."bannerId" WHERE "note"."id" IN ( SELECT "joining"."noteId" AS "joining_noteId" FROM "clip_note" "joining" WHERE "joining"."clipId" = $1 ) AND ( ( "note"."visibility" = 'public' OR "note"."visibility" = 'home' ) OR "note"."userId" = $2 OR '{"8xj1mujsjd"}' < @ "note"."visibleUserIds" OR ( "note"."visibility" = 'followers' AND ( "note"."userId" IN ( SELECT "following"."followeeId" AS "following_followeeId" FROM "following" "following" WHERE "following"."followerId" = $3 ) OR "note"."replyUserId" = $4 ) ) ) AND "note"."userId" NOT IN ( SELECT "muting"."muteeId" AS "muting_muteeId" FROM "muting" "muting" WHERE "muting"."muterId" = $5 ) AND ( "note"."replyUserId" IS NULL OR "note"."replyUserId" NOT IN ( SELECT "muting"."muteeId" AS "muting_muteeId" FROM "muting" "muting" WHERE "muting"."muterId" = $6 ) ) AND ( "note"."renoteUserId" IS NULL OR "note"."renoteUserId" NOT IN ( SELECT "muting"."muteeId" AS "muting_muteeId" FROM "muting" "muting" WHERE "muting"."muterId" = $7 ) ) AND "note"."userId" NOT IN ( SELECT "blocking"."blockerId" AS "blocking_blockerId" FROM "blocking" "blocking" WHERE "blocking"."blockeeId" = $8 ) AND ( "note"."replyUserId" IS NULL OR "note"."replyUserId" NOT IN ( SELECT "blocking"."blockerId" AS "blocking_blockerId" FROM "blocking" "blocking" WHERE "blocking"."blockeeId" = $9 ) ) AND ( "note"."renoteUserId" IS NULL OR "note"."renoteUserId" NOT IN ( SELECT "blocking"."blockerId" AS "blocking_blockerId" FROM "blocking" "blocking" WHERE "blocking"."blockeeId" = $10 ) ) ) "distinctAlias" ORDER BY "distinctAlias"."note_id" DESC, "note_id" ASC LIMIT 11 parameters : $1 = '8xxjqqd8ly', $2 = '8xj1mujsjd', $3 = '8xj1mujsjd', $4 = '8xj1mujsjd', $5 = '8xj1mujsjd', $6 = '8xj1mujsjd', $7 = '8xj1mujsjd', $8 = '8xj1mujsjd', $9 = '8xj1mujsjd', $10 = '8xj1mujsjd' ```

@ThatOneCalculator
Copy link
Contributor

ThatOneCalculator commented Mar 21, 2022

😨

@nullobsi
Copy link
Contributor Author

Another thing to keep in mind; my notes db is already like 16gb, as it's an older instance. Though it's fine on misskey.io, so maybe their servers are just extremely beefy.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
⚠️bug? This might be a bug packages/backend Server side specific issue/PR 🐢Performance Efficiency related issue/PR
Projects
None yet
Development

Successfully merging a pull request may close this issue.

3 participants