Keystore 2.0: Add indexes to certain high traffic tables.
This greatly improves the performance of Keystore 2.0.
Test: keystore2_test
Change-Id: Icc3bc610165e9258bb7d7233068b61c166e3d42a
diff --git a/keystore2/src/database.rs b/keystore2/src/database.rs
index 2e7fca8..3789d28 100644
--- a/keystore2/src/database.rs
+++ b/keystore2/src/database.rs
@@ -751,6 +751,20 @@
.context("Failed to initialize \"keyentry\" table.")?;
tx.execute(
+ "CREATE INDEX IF NOT EXISTS persistent.keyentry_id_index
+ ON keyentry(id);",
+ NO_PARAMS,
+ )
+ .context("Failed to create index keyentry_id_index.")?;
+
+ tx.execute(
+ "CREATE INDEX IF NOT EXISTS persistent.keyentry_domain_namespace_index
+ ON keyentry(domain, namespace, alias);",
+ NO_PARAMS,
+ )
+ .context("Failed to create index keyentry_domain_namespace_index.")?;
+
+ tx.execute(
"CREATE TABLE IF NOT EXISTS persistent.blobentry (
id INTEGER PRIMARY KEY,
subcomponent_type INTEGER,
@@ -761,6 +775,13 @@
.context("Failed to initialize \"blobentry\" table.")?;
tx.execute(
+ "CREATE INDEX IF NOT EXISTS persistent.blobentry_keyentryid_index
+ ON blobentry(keyentryid);",
+ NO_PARAMS,
+ )
+ .context("Failed to create index blobentry_keyentryid_index.")?;
+
+ tx.execute(
"CREATE TABLE IF NOT EXISTS persistent.keyparameter (
keyentryid INTEGER,
tag INTEGER,
@@ -771,6 +792,13 @@
.context("Failed to initialize \"keyparameter\" table.")?;
tx.execute(
+ "CREATE INDEX IF NOT EXISTS persistent.keyparameter_keyentryid_index
+ ON keyparameter(keyentryid);",
+ NO_PARAMS,
+ )
+ .context("Failed to create index keyparameter_keyentryid_index.")?;
+
+ tx.execute(
"CREATE TABLE IF NOT EXISTS persistent.keymetadata (
keyentryid INTEGER,
tag INTEGER,
@@ -780,6 +808,13 @@
.context("Failed to initialize \"keymetadata\" table.")?;
tx.execute(
+ "CREATE INDEX IF NOT EXISTS persistent.keymetadata_keyentryid_index
+ ON keymetadata(keyentryid);",
+ NO_PARAMS,
+ )
+ .context("Failed to create index keymetadata_keyentryid_index.")?;
+
+ tx.execute(
"CREATE TABLE IF NOT EXISTS persistent.grant (
id INTEGER UNIQUE,
grantee INTEGER,