diff --git a/core/lib/Drupal/Core/KeyValueStore/DatabaseStorageExpirable.php b/core/lib/Drupal/Core/KeyValueStore/DatabaseStorageExpirable.php
index ffd4f1a694..277bbd2e04 100644
--- a/core/lib/Drupal/Core/KeyValueStore/DatabaseStorageExpirable.php
+++ b/core/lib/Drupal/Core/KeyValueStore/DatabaseStorageExpirable.php
@@ -226,7 +226,6 @@ public static function schemaDefinition() {
       ],
       'primary key' => ['collection', 'name'],
       'indexes' => [
-        'all' => ['name', 'collection', 'expire'],
         'expire' => ['expire'],
       ],
     ];
diff --git a/core/modules/system/system.install b/core/modules/system/system.install
index 2b1a2a59b3..6ca7b2c7e5 100644
--- a/core/modules/system/system.install
+++ b/core/modules/system/system.install
@@ -1447,3 +1447,13 @@ function system_update_8901() {
     }
   }
 }
+
+/**
+ * Drop the 'all' index on the 'key_value_expire' table.
+ */
+function system_update_9201() {
+  $schema = \Drupal::database()->schema();
+  if ($schema->tableExists('key_value_expire')) {
+    $schema->dropIndex('key_value_expire', 'all');
+  }
+}
diff --git a/core/modules/system/tests/src/Functional/Update/DropIndexAllOnKeyValueExpireTableUpdateTest.php b/core/modules/system/tests/src/Functional/Update/DropIndexAllOnKeyValueExpireTableUpdateTest.php
new file mode 100644
index 0000000000..ec183af602
--- /dev/null
+++ b/core/modules/system/tests/src/Functional/Update/DropIndexAllOnKeyValueExpireTableUpdateTest.php
@@ -0,0 +1,35 @@
+<?php
+
+namespace Drupal\Tests\system\Functional\Update;
+
+use Drupal\FunctionalTests\Update\UpdatePathTestBase;
+
+/**
+ * Tests that 'all' index is dropped from the 'key_value_expire' table.
+ *
+ * @group Update
+ * @see system_update_8902
+ */
+class DropIndexAllOnKeyValueExpireTableUpdateTest extends UpdatePathTestBase {
+
+  /**
+   * {@inheritdoc}
+   */
+  protected function setDatabaseDumpFiles() {
+    $this->databaseDumpFiles = [
+      dirname(__DIR__, 3) . '/fixtures/update/drupal-8.8.0.bare.standard.php.gz',
+    ];
+  }
+
+  /**
+   * Tests that 'all' index is dropped from the 'key_value_expire' table.
+   */
+  public function testUpdate() {
+    $schema = \Drupal::database()->schema();
+
+    $this->assertTrue($schema->indexExists('key_value_expire', 'all'));
+    $this->runUpdates();
+    $this->assertFalse($schema->indexExists('key_value_expire', 'all'));
+  }
+
+}
