diff --git a/packages/db/migrations/0162.do.create_more_index_on_library_item.sql b/packages/db/migrations/0162.do.create_more_index_on_library_item.sql new file mode 100755 index 000000000..fea6ad7ea --- /dev/null +++ b/packages/db/migrations/0162.do.create_more_index_on_library_item.sql @@ -0,0 +1,6 @@ +-- Type: DO +-- Name: create_more_index_on_library_item +-- Description: Create more indexes on omnivore.library_item table to improve query performance + +CREATE INDEX CONCURRENTLY IF NOT EXISTS library_item_user_id_state_idx ON omnivore.library_item (user_id, state); + diff --git a/packages/db/migrations/0162.undo.create_more_index_on_library_item.sql b/packages/db/migrations/0162.undo.create_more_index_on_library_item.sql new file mode 100755 index 000000000..2d01a10ff --- /dev/null +++ b/packages/db/migrations/0162.undo.create_more_index_on_library_item.sql @@ -0,0 +1,11 @@ +-- Type: UNDO +-- Name: create_more_index_on_library_item +-- Description: Create more indexes on omnivore.library_item table to improve query performance + +BEGIN; + +DROP INDEX IF EXISTS library_item_user_id_state_idx; + +COMMIT; + +SELECT DISTINCT "distinctAlias"."LibraryItem_id" AS "ids_LibraryItem_id" FROM (SELECT "LibraryItem"."id" AS "LibraryItem_id", "LibraryItem"."state" AS "LibraryItem_state", "LibraryItem"."original_url" AS "LibraryItem_original_url", "LibraryItem"."download_url" AS "LibraryItem_download_url", "LibraryItem"."slug" AS "LibraryItem_slug", "LibraryItem"."title" AS "LibraryItem_title", "LibraryItem"."author" AS "LibraryItem_author", "LibraryItem"."description" AS "LibraryItem_description", "LibraryItem"."saved_at" AS "LibraryItem_saved_at", "LibraryItem"."created_at" AS "LibraryItem_created_at", "LibraryItem"."published_at" AS "LibraryItem_published_at", "LibraryItem"."archived_at" AS "LibraryItem_archived_at", "LibraryItem"."deleted_at" AS "LibraryItem_deleted_at", "LibraryItem"."read_at" AS "LibraryItem_read_at", "LibraryItem"."updated_at" AS "LibraryItem_updated_at", "LibraryItem"."item_language" AS "LibraryItem_item_language", "LibraryItem"."word_count" AS "LibraryItem_word_count", "LibraryItem"."site_name" AS "LibraryItem_site_name", "LibraryItem"."site_icon" AS "LibraryItem_site_icon", "LibraryItem"."reading_progress_last_read_anchor" AS "LibraryItem_reading_progress_last_read_anchor", "LibraryItem"."reading_progress_highest_read_anchor" AS "LibraryItem_reading_progress_highest_read_anchor", "LibraryItem"."reading_progress_top_percent" AS "LibraryItem_reading_progress_top_percent", "LibraryItem"."reading_progress_bottom_percent" AS "LibraryItem_reading_progress_bottom_percent", "LibraryItem"."thumbnail" AS "LibraryItem_thumbnail", "LibraryItem"."item_type" AS "LibraryItem_item_type", "LibraryItem"."upload_file_id" AS "LibraryItem_upload_file_id", "LibraryItem"."content_reader" AS "LibraryItem_content_reader", "LibraryItem"."readable_content" AS "LibraryItem_readable_content", "LibraryItem"."text_content_hash" AS "LibraryItem_text_content_hash", "LibraryItem"."subscription" AS "LibraryItem_subscription", "LibraryItem"."directionality" AS "LibraryItem_directionality", "LibraryItem"."note" AS "LibraryItem_note", "LibraryItem"."recommender_names" AS "LibraryItem_recommender_names", "LibraryItem"."links" AS "LibraryItem_links", "LibraryItem"."preview_content" AS "LibraryItem_preview_content", "LibraryItem"."preview_content_type" AS "LibraryItem_preview_content_type", "LibraryItem"."folder" AS "LibraryItem_folder", "LibraryItem__LibraryItem_highlights"."id" AS "LibraryItem__LibraryItem_highlights_id", "LibraryItem__LibraryItem_highlights"."short_id" AS "LibraryItem__LibraryItem_highlights_short_id", "LibraryItem__LibraryItem_highlights"."library_item_id" AS "LibraryItem__LibraryItem_highlights_library_item_id", "LibraryItem__LibraryItem_highlights"."quote" AS "LibraryItem__LibraryItem_highlights_quote", "LibraryItem__LibraryItem_highlights"."prefix" AS "LibraryItem__LibraryItem_highlights_prefix", "LibraryItem__LibraryItem_highlights"."suffix" AS "LibraryItem__LibraryItem_highlights_suffix", "LibraryItem__LibraryItem_highlights"."patch" AS "LibraryItem__LibraryItem_highlights_patch", "LibraryItem__LibraryItem_highlights"."annotation" AS "LibraryItem__LibraryItem_highlights_annotation", "LibraryItem__LibraryItem_highlights"."created_at" AS "LibraryItem__LibraryItem_highlights_created_at", "LibraryItem__LibraryItem_highlights"."updated_at" AS "LibraryItem__LibraryItem_highlights_updated_at", "LibraryItem__LibraryItem_highlights"."shared_at" AS "LibraryItem__LibraryItem_highlights_shared_at", "LibraryItem__LibraryItem_highlights"."highlight_position_percent" AS "LibraryItem__LibraryItem_highlights_highlight_position_percent", "LibraryItem__LibraryItem_highlights"."highlight_position_anchor_index" AS "e9548c8abe96aa587160cdefd70110b18d121fe7216cb09fb831f9cc05f90df", "LibraryItem__LibraryItem_highlights"."highlight_type" AS "LibraryItem__LibraryItem_highlights_highlight_type", "LibraryItem__LibraryItem_highlights"."html" AS "LibraryItem__LibraryItem_highlights_html", "LibraryItem__LibraryItem_highlights"."color" AS "LibraryItem__LibraryItem_highlights_color", "LibraryItem__LibraryItem_highlights"."user_id" AS "LibraryItem__LibraryItem_highlights_user_id", "43147091eb650d733be159531a3e7b98c009541143983b4e8aa8a1e895c559a"."id" AS "a84fff273966eb91f85c037157ec97f95215bc6590980995dd93965b83522b0", "43147091eb650d733be159531a3e7b98c009541143983b4e8aa8a1e895c559a"."name" AS "9b274ed700800f5b7f0a3db17f07ebe509604a588fe5cc11efbd91be47a0388", "43147091eb650d733be159531a3e7b98c009541143983b4e8aa8a1e895c559a"."source" AS "a801f845e7faccd5eaaef706259afc68324fee30d0ba084ce31d1d4fa7e3e5c", "43147091eb650d733be159531a3e7b98c009541143983b4e8aa8a1e895c559a"."email" AS "c6e3bedfbc54cea34b613343590d5eb4d223baa5f6fb53081cf3e55f468784c", "43147091eb650d733be159531a3e7b98c009541143983b4e8aa8a1e895c559a"."source_user_id" AS "12540500658ffe8b1a3660729d4c534c10ae5cf5a764b887ba95d4f0fee69a5", "43147091eb650d733be159531a3e7b98c009541143983b4e8aa8a1e895c559a"."created_at" AS "1f2fccc6ad4beb900ccff83f41f2d00cd99bf5e67bd3bf0f920430e1c8f6751", "43147091eb650d733be159531a3e7b98c009541143983b4e8aa8a1e895c559a"."updated_at" AS "966ae4e6635e696d8e7a4e1eb4525952de2547b40e5f794c24b12fed9ed756c", "43147091eb650d733be159531a3e7b98c009541143983b4e8aa8a1e895c559a"."password" AS "32377f9dd8be80b501c95ee2c7490723cd3da6cd543516520c311b8bd30aeae", "43147091eb650d733be159531a3e7b98c009541143983b4e8aa8a1e895c559a"."status" AS "598961a7c8b781682de6111412d83515439ebe52849b7debddee94ee55be91d", "3f7c4003050ba058520e50b3fe0a9909cef8a58603e018be753d66ca05d4d2d"."id" AS "128b7ad5b9c36caa99dedb74e1f9be27875c3e02a3b27945bc0c1da6354a0d4", "3f7c4003050ba058520e50b3fe0a9909cef8a58603e018be753d66ca05d4d2d"."name" AS "9a082316b6001f218fa0732f41072093c50fbde371ce157d7e7551c427aa284", "3f7c4003050ba058520e50b3fe0a9909cef8a58603e018be753d66ca05d4d2d"."color" AS "314c3e66dc1732f1b78ca2de8b486951a5345f0bee409d5a710442a4e5f4126", "3f7c4003050ba058520e50b3fe0a9909cef8a58603e018be753d66ca05d4d2d"."description" AS "d5ef5710f3d3fe2d274064390b2786c62b6c1e67dea851e77527eb46929b44d", "3f7c4003050ba058520e50b3fe0a9909cef8a58603e018be753d66ca05d4d2d"."created_at" AS "df5bf352dcd59ca3929a6f9c15c8d32a63d06aa8659694b0040e8029a4f7d96", "3f7c4003050ba058520e50b3fe0a9909cef8a58603e018be753d66ca05d4d2d"."position" AS "0bc7af18d863d6867a28d802a5e4031552aecd5ae57252d8c707415d1c99122", "3f7c4003050ba058520e50b3fe0a9909cef8a58603e018be753d66ca05d4d2d"."internal" AS "dd3c15cab0e21d48df527a4a638d0a950905c8e4876d817104dff779b1bf6d3", "3f7c4003050ba058520e50b3fe0a9909cef8a58603e018be753d66ca05d4d2d"."updated_at" AS "be8eafc12b0af707d1fbca309fb119905af3e844bc2b3dd931470f5db76c578", "3f7c4003050ba058520e50b3fe0a9909cef8a58603e018be753d66ca05d4d2d"."user_id" AS "9207e9ba039402e36925b938c6a4369b0c05f2488a55e9bf46d137a8cf9522b", "LibraryItem__LibraryItem_uploadFile"."id" AS "LibraryItem__LibraryItem_uploadFile_id", "LibraryItem__LibraryItem_uploadFile"."url" AS "LibraryItem__LibraryItem_uploadFile_url", "LibraryItem__LibraryItem_uploadFile"."file_name" AS "LibraryItem__LibraryItem_uploadFile_file_name", "LibraryItem__LibraryItem_uploadFile"."content_type" AS "LibraryItem__LibraryItem_uploadFile_content_type", "LibraryItem__LibraryItem_uploadFile"."status" AS "LibraryItem__LibraryItem_uploadFile_status", "LibraryItem__LibraryItem_uploadFile"."created_at" AS "LibraryItem__LibraryItem_uploadFile_created_at", "LibraryItem__LibraryItem_uploadFile"."updated_at" AS "LibraryItem__LibraryItem_uploadFile_updated_at", "LibraryItem__LibraryItem_uploadFile"."user_id" AS "LibraryItem__LibraryItem_uploadFile_user_id", "LibraryItem__LibraryItem_recommendations"."id" AS "LibraryItem__LibraryItem_recommendations_id", "LibraryItem__LibraryItem_recommendations"."note" AS "LibraryItem__LibraryItem_recommendations_note", "LibraryItem__LibraryItem_recommendations"."created_at" AS "LibraryItem__LibraryItem_recommendations_created_at", "LibraryItem__LibraryItem_recommendations"."recommender_id" AS "LibraryItem__LibraryItem_recommendations_recommender_id", "LibraryItem__LibraryItem_recommendations"."library_item_id" AS "LibraryItem__LibraryItem_recommendations_library_item_id", "LibraryItem__LibraryItem_recommendations"."group_id" AS "LibraryItem__LibraryItem_recommendations_group_id", "6751b72e28632393def6b0add13bfe2a7698e53552ed2792c2ba964da612402"."id" AS "9b3bb36a2339fb26be1d67e3424a18466a21c19ca236ba94dd57e16208d7b9e", "6751b72e28632393def6b0add13bfe2a7698e53552ed2792c2ba964da612402"."name" AS "131196a8142484c90e6a89b4abf3c81e22b263eddf41c16acb24f7006311400", "6751b72e28632393def6b0add13bfe2a7698e53552ed2792c2ba964da612402"."source" AS "6a153ef4b78bad86cbaf29f2942aee0e2c5b225b7e866cd8b61f7ef221dd71b", "6751b72e28632393def6b0add13bfe2a7698e53552ed2792c2ba964da612402"."email" AS "0decc923e5dd0c128a6c98212071bd19b140ab139d89d32dd55caa7a2c1a635", "6751b72e28632393def6b0add13bfe2a7698e53552ed2792c2ba964da612402"."source_user_id" AS "6c27b57756ed08cdaf03a452ec44e133c752365c485dd49291b81fc0c49c43f", "6751b72e28632393def6b0add13bfe2a7698e53552ed2792c2ba964da612402"."created_at" AS "0d545c634c311310cb701abca204169251b5ef9d0fc0f03362840d13501060d", "6751b72e28632393def6b0add13bfe2a7698e53552ed2792c2ba964da612402"."updated_at" AS "67d07f0399dbbf94a304883edfc693bc2616f2004caf3a0c15441e143a3ab32", "6751b72e28632393def6b0add13bfe2a7698e53552ed2792c2ba964da612402"."password" AS "c831e587f68ec2dd789a8d788d42ef3268f418c0d38701d7f7378c7ccee511d", "6751b72e28632393def6b0add13bfe2a7698e53552ed2792c2ba964da612402"."status" AS "230d6dfb285a244137de6e147917cd59e5becce5f66479f5c78bf25bc23e390", "83de47b7419c7e553320a1b5d97c69d3c89caf1c3ac932803f190890e901e94"."id" AS "bcc2a4607a4617eb2cd3dc0938e9ba29d54d6e021cab70edd6987570a14d2e9", "83de47b7419c7e553320a1b5d97c69d3c89caf1c3ac932803f190890e901e94"."name" AS "d4f18dbcc71e2639c26faa7b786b3833768a95a8b5775a5c79052ca047e6cc6", "83de47b7419c7e553320a1b5d97c69d3c89caf1c3ac932803f190890e901e94"."created_at" AS "0cd60e6e5caeda07646b3354288839e4fbf270f68a5e57889e0b1b0ca8b7e24", "83de47b7419c7e553320a1b5d97c69d3c89caf1c3ac932803f190890e901e94"."updated_at" AS "915c23bfdd35d50b75603b9e386f6a372076845f16cd8e990a23f024a628c27", "83de47b7419c7e553320a1b5d97c69d3c89caf1c3ac932803f190890e901e94"."description" AS "dc4cc6d39b7c848b140dd2dfdca591f0d67955c946744d7d22685cfe9617d68", "83de47b7419c7e553320a1b5d97c69d3c89caf1c3ac932803f190890e901e94"."topics" AS "4f0de2a6946a15444033916a08400dcfd4fd9d1627e9f22dac62d26ef294746", "83de47b7419c7e553320a1b5d97c69d3c89caf1c3ac932803f190890e901e94"."only_admin_can_post" AS "fcf0960115229e96388a1cd249c1c3e03a1b936b7b3427cab855d63a05f8db5", "83de47b7419c7e553320a1b5d97c69d3c89caf1c3ac932803f190890e901e94"."only_admin_can_see_members" AS "fa39c0bd929ab29c7b4a72355e5951e24a136b011cb531dc35689dd84a78064", "83de47b7419c7e553320a1b5d97c69d3c89caf1c3ac932803f190890e901e94"."created_by_id" AS "8e71e5887409bb011c11d54f29a744683735157d4d0ff004e538883e5631aad", "f9ce6479c0acde2833fb26dec6617dba8eebb8190673bb14995272d2ead5924"."id" AS "68fb17607a4cafcce1061c2cf8bcc8a58a6283ef57143f90d70942a16f9f037", "f9ce6479c0acde2833fb26dec6617dba8eebb8190673bb14995272d2ead5924"."username" AS "7cd283a35ad9d0aeb5f2244dca7fc7c391091ca8fa3da0d79a5776e7535e074", "f9ce6479c0acde2833fb26dec6617dba8eebb8190673bb14995272d2ead5924"."bio" AS "b9c7dc843e5d88a2de4a753b95146e0a638d9c3971673d9a60f6d519c0c2010", "f9ce6479c0acde2833fb26dec6617dba8eebb8190673bb14995272d2ead5924"."picture_url" AS "902c9d3b662f9582f409b9b070ab02f02c1ce9c41015e55338046b72f2e6db2", "f9ce6479c0acde2833fb26dec6617dba8eebb8190673bb14995272d2ead5924"."created_at" AS "db9ad7b20df0413d3daadcae4b594492e18219816617aac80fcfd04b35a88f1", "f9ce6479c0acde2833fb26dec6617dba8eebb8190673bb14995272d2ead5924"."updated_at" AS "d4587b34c5c154ecb6b5718890ca1e8df464f4dcf874ecc7cab582cd947ebe5", "f9ce6479c0acde2833fb26dec6617dba8eebb8190673bb14995272d2ead5924"."private" AS "5ca7f90b5eddaf0776d328ee0cac51cb7e201e9e179245d3fe88bb9e80d65cb", "f9ce6479c0acde2833fb26dec6617dba8eebb8190673bb14995272d2ead5924"."user_id" AS "d51071d9c660f3db37310f4849871a25beed4cc49e219e8528ca078784feef8", "98b4448f59ed18da5a754f7b59e73f79312a4381f32c7a87cf866c5834a17a7"."id" AS "7db085bcf0a53f7c610cd752202ce151ab68596993fd3cbb8a14ebc20b8d8d9", "98b4448f59ed18da5a754f7b59e73f79312a4381f32c7a87cf866c5834a17a7"."username" AS "8a3956410eae42d06c8ab8786719e783641dd0e9f61ab7cba31d5a2dadc0b30", "98b4448f59ed18da5a754f7b59e73f79312a4381f32c7a87cf866c5834a17a7"."bio" AS "68e83b7f491f4ec8fe14c1f279e4693b732eb163962ddce14d84a470066b91d", "98b4448f59ed18da5a754f7b59e73f79312a4381f32c7a87cf866c5834a17a7"."picture_url" AS "16da2d835d56fcaf3289168c163e01bb6b86ccbefd6f504b0a8213947f21a5d", "98b4448f59ed18da5a754f7b59e73f79312a4381f32c7a87cf866c5834a17a7"."created_at" AS "db596af8a72bb8c13c089505dbbe8249fb89ede3dfb4db098dd22baf16ec79a", "98b4448f59ed18da5a754f7b59e73f79312a4381f32c7a87cf866c5834a17a7"."updated_at" AS "82d653131762df0f8f417c826702fdda85ed59fb98c97a9fefaf38f1b7629c0", "98b4448f59ed18da5a754f7b59e73f79312a4381f32c7a87cf866c5834a17a7"."private" AS "f2f24888e7cc5341606def1238c365479409fc56150f597bd9cc19ea3d5ed45", "98b4448f59ed18da5a754f7b59e73f79312a4381f32c7a87cf866c5834a17a7"."user_id" AS "ec33b098ec4e6089db121d51050d7f24c277026c64dd0f9d177a19e5eebfb51" FROM "omnivore"."library_item" "LibraryItem" LEFT JOIN "omnivore"."highlight" "LibraryItem__LibraryItem_highlights" ON "LibraryItem__LibraryItem_highlights"."library_item_id"="LibraryItem"."id" LEFT JOIN "omnivore"."user" "43147091eb650d733be159531a3e7b98c009541143983b4e8aa8a1e895c559a" ON "43147091eb650d733be159531a3e7b98c009541143983b4e8aa8a1e895c559a"."id"="LibraryItem__LibraryItem_highlights"."user_id" LEFT JOIN "omnivore"."entity_labels" "777e6f56f59cafce03cca0cbae77236a5a725055478db4df6a84db30b6052df" ON "777e6f56f59cafce03cca0cbae77236a5a725055478db4df6a84db30b6052df"."highlight_id"="LibraryItem__LibraryItem_highlights"."id" LEFT JOIN "omnivore"."labels" "3f7c4003050ba058520e50b3fe0a9909cef8a58603e018be753d66ca05d4d2d" ON "3f7c4003050ba058520e50b3fe0a9909cef8a58603e018be753d66ca05d4d2d"."id"="777e6f56f59cafce03cca0cbae77236a5a725055478db4df6a84db30b6052df"."label_id" LEFT JOIN "omnivore"."upload_files" "LibraryItem__LibraryItem_uploadFile" ON "LibraryItem__LibraryItem_uploadFile"."id"="LibraryItem"."upload_file_id" LEFT JOIN "omnivore"."recommendation" "LibraryItem__LibraryItem_recommendations" ON "LibraryItem__LibraryItem_recommendations"."library_item_id"="LibraryItem"."id" LEFT JOIN "omnivore"."user" "6751b72e28632393def6b0add13bfe2a7698e53552ed2792c2ba964da612402" ON "6751b72e28632393def6b0add13bfe2a7698e53552ed2792c2ba964da612402"."id"="LibraryItem__LibraryItem_recommendations"."recommender_id" LEFT JOIN "omnivore"."group" "83de47b7419c7e553320a1b5d97c69d3c89caf1c3ac932803f190890e901e94" ON "83de47b7419c7e553320a1b5d97c69d3c89caf1c3ac932803f190890e901e94"."id"="LibraryItem__LibraryItem_recommendations"."group_id" LEFT JOIN "omnivore"."user_profile" "f9ce6479c0acde2833fb26dec6617dba8eebb8190673bb14995272d2ead5924" ON "f9ce6479c0acde2833fb26dec6617dba8eebb8190673bb14995272d2ead5924"."user_id"="43147091eb650d733be159531a3e7b98c009541143983b4e8aa8a1e895c559a"."id" LEFT JOIN "omnivore"."user_profile" "98b4448f59ed18da5a754f7b59e73f79312a4381f32c7a87cf866c5834a17a7" ON "98b4448f59ed18da5a754f7b59e73f79312a4381f32c7a87cf866c5834a17a7"."user_id"="6751b72e28632393def6b0add13bfe2a7698e53552ed2792c2ba964da612402"."id" WHERE ("LibraryItem"."slug" = 'team-og-new-carry-18dd0b0d645' AND "LibraryItem"."deleted_at" IS NULL)) "distinctAlias" ORDER BY "LibraryItem_id" ASC LIMIT 1;