diff --git a/config/gitlab_loose_foreign_keys.yml b/config/gitlab_loose_foreign_keys.yml
index d2477740fbaf4d87e96820d3bd9bb553fc6d2edf..ea501630e774552d7280d841b75ee8d08414901a 100644
--- a/config/gitlab_loose_foreign_keys.yml
+++ b/config/gitlab_loose_foreign_keys.yml
@@ -10,15 +10,9 @@ application_settings:
   - table: users
     column: usage_stats_set_by_user_id
     on_delete: async_nullify
-  - table: namespaces
-    column: instance_administrators_group_id
-    on_delete: async_nullify
   - table: projects
     column: file_template_project_id
     on_delete: async_nullify
-  - table: projects
-    column: instance_administration_project_id
-    on_delete: async_nullify
   - table: namespaces
     column: custom_project_templates_group_id
     on_delete: async_nullify
diff --git a/db/post_migrate/20231127174335_remove_ignored_application_settings_columns.rb b/db/post_migrate/20231127174335_remove_ignored_application_settings_columns.rb
new file mode 100644
index 0000000000000000000000000000000000000000..07cabb93d96faef68492cf02c8a52b94b1baf571
--- /dev/null
+++ b/db/post_migrate/20231127174335_remove_ignored_application_settings_columns.rb
@@ -0,0 +1,28 @@
+# frozen_string_literal: true
+
+class RemoveIgnoredApplicationSettingsColumns < Gitlab::Database::Migration[2.2]
+  milestone '16.7'
+
+  disable_ddl_transaction!
+
+  PROJECT_INDEX_NAME = 'index_applicationsettings_on_instance_administration_project_id'
+  GROUP_INDEX_NAME = 'index_application_settings_on_instance_administrators_group_id'
+
+  def up
+    remove_column(:application_settings, :instance_administration_project_id)
+    remove_column(:application_settings, :instance_administrators_group_id)
+  end
+
+  def down
+    unless column_exists?(:users, :instance_administration_project_id)
+      add_column(:application_settings, :instance_administration_project_id, :bigint)
+    end
+
+    unless column_exists?(:users, :instance_administrators_group_id)
+      add_column(:application_settings, :instance_administrators_group_id, :integer)
+    end
+
+    add_concurrent_index(:application_settings, :instance_administration_project_id, name: PROJECT_INDEX_NAME)
+    add_concurrent_index(:application_settings, :instance_administrators_group_id, name: GROUP_INDEX_NAME)
+  end
+end
diff --git a/db/schema_migrations/20231127174335 b/db/schema_migrations/20231127174335
new file mode 100644
index 0000000000000000000000000000000000000000..5a47c758a309c6f48e52f8b31d151b400a4d7ee8
--- /dev/null
+++ b/db/schema_migrations/20231127174335
@@ -0,0 +1 @@
+a12b08baa00906fad3acd0f3c0490d1fc6880eb627f7c2cc025edf481c8f9e0b
\ No newline at end of file
diff --git a/db/structure.sql b/db/structure.sql
index 60906ed74e74f54fbffb2746e4cf8096459c05d9..b5de92bf170129247a6bc20392cc6c442a2e37d3 100644
--- a/db/structure.sql
+++ b/db/structure.sql
@@ -11894,7 +11894,6 @@ CREATE TABLE application_settings (
     raw_blob_request_limit integer DEFAULT 300 NOT NULL,
     allow_local_requests_from_web_hooks_and_services boolean DEFAULT false NOT NULL,
     allow_local_requests_from_system_hooks boolean DEFAULT true NOT NULL,
-    instance_administration_project_id bigint,
     asset_proxy_enabled boolean DEFAULT false NOT NULL,
     asset_proxy_url character varying,
     encrypted_asset_proxy_secret_key text,
@@ -11940,7 +11939,6 @@ CREATE TABLE application_settings (
     encrypted_slack_app_verification_token_iv character varying(255),
     force_pages_access_control boolean DEFAULT false NOT NULL,
     updating_name_disabled_for_users boolean DEFAULT false NOT NULL,
-    instance_administrators_group_id integer,
     elasticsearch_indexed_field_length_limit integer DEFAULT 0 NOT NULL,
     elasticsearch_max_bulk_size_mb smallint DEFAULT 10 NOT NULL,
     elasticsearch_max_bulk_concurrency smallint DEFAULT 10 NOT NULL,
@@ -31716,16 +31714,12 @@ CREATE INDEX index_application_settings_on_custom_project_templates_group_id ON
 
 CREATE INDEX index_application_settings_on_file_template_project_id ON application_settings USING btree (file_template_project_id);
 
-CREATE INDEX index_application_settings_on_instance_administrators_group_id ON application_settings USING btree (instance_administrators_group_id);
-
 CREATE UNIQUE INDEX index_application_settings_on_push_rule_id ON application_settings USING btree (push_rule_id);
 
 CREATE INDEX index_application_settings_on_usage_stats_set_by_user_id ON application_settings USING btree (usage_stats_set_by_user_id);
 
 CREATE INDEX index_application_settings_web_ide_oauth_application_id ON application_settings USING btree (web_ide_oauth_application_id);
 
-CREATE INDEX index_applicationsettings_on_instance_administration_project_id ON application_settings USING btree (instance_administration_project_id);
-
 CREATE INDEX index_approval_group_rules_groups_on_group_id ON approval_group_rules_groups USING btree (group_id);
 
 CREATE INDEX index_approval_group_rules_on_scan_result_policy_id ON approval_group_rules USING btree (scan_result_policy_id);
diff --git a/spec/db/schema_spec.rb b/spec/db/schema_spec.rb
index 09f39506448862ba6f6600928e5525109d22d66e..92835d21bb6ab4e65a2f417ebd70b53c4cf6be0b 100644
--- a/spec/db/schema_spec.rb
+++ b/spec/db/schema_spec.rb
@@ -10,6 +10,7 @@
   let(:columns_name_with_jsonb) { retrieve_columns_name_with_jsonb }
 
   IGNORED_INDEXES_ON_FKS = {
+    application_settings: %w[instance_administration_project_id instance_administrators_group_id],
     # `search_index_id index_type` is the composite foreign key configured for `search_namespace_index_assignments`,
     # but in Search::NamespaceIndexAssignment model, only `search_index_id` is used as foreign key and indexed
     search_namespace_index_assignments: [%w[search_index_id index_type]],