From 0368791850ef05336f0121e96c2605f7e7933173 Mon Sep 17 00:00:00 2001 From: Application-drop-up Date: Fri, 22 May 2026 09:04:49 +0900 Subject: [PATCH] perf: add index on site_state_parties.world_heritage_site_id MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The composite PK (state_party_code, world_heritage_site_id) cannot satisfy WHERE world_heritage_site_id IN (...) queries efficiently — MySQL falls back to a full table scan on every countries eager load. Adding a standalone index eliminates the full scan and turns the eager load into an index seek, directly reducing list and search endpoint latency. Closes #464 Part of #463 --- ...e_state_parties_world_heritage_site_id.php | 22 +++++++++++++++++++ 1 file changed, 22 insertions(+) create mode 100644 src/database/migrations/2026_05_22_000001_add_index_to_site_state_parties_world_heritage_site_id.php diff --git a/src/database/migrations/2026_05_22_000001_add_index_to_site_state_parties_world_heritage_site_id.php b/src/database/migrations/2026_05_22_000001_add_index_to_site_state_parties_world_heritage_site_id.php new file mode 100644 index 0000000..13c8bc1 --- /dev/null +++ b/src/database/migrations/2026_05_22_000001_add_index_to_site_state_parties_world_heritage_site_id.php @@ -0,0 +1,22 @@ +index('world_heritage_site_id', 'idx_ssp_world_heritage_site_id'); + }); + } + + public function down(): void + { + Schema::table('site_state_parties', function (Blueprint $table) { + $table->dropIndex('idx_ssp_world_heritage_site_id'); + }); + } +};