From: Julius Härtl Date: Thu, 30 Nov 2023 15:30:21 +0000 (+0100) Subject: perf: Add partial index on configvalue of preferences table X-Git-Tag: v29.0.0beta1~715^2 X-Git-Url: https://source.dussan.org/?a=commitdiff_plain;h=0ccf84bb3174a0dba47938888d104db96dcacb1b;p=nextcloud-server.git perf: Add partial index on configvalue of preferences table Signed-off-by: Julius Härtl --- diff --git a/core/Application.php b/core/Application.php index 2ad8b9f2a30..b033ea70871 100644 --- a/core/Application.php +++ b/core/Application.php @@ -44,6 +44,7 @@ use OC\Authentication\Listeners\UserDeletedWebAuthnCleanupListener; use OC\Authentication\Notifications\Notifier as AuthenticationNotifier; use OC\Core\Listener\BeforeTemplateRenderedListener; use OC\Core\Notification\CoreNotifier; +use OC\SystemConfig; use OC\TagManager; use OCP\AppFramework\App; use OCP\AppFramework\Http\Events\BeforeLoginTemplateRenderedEvent; @@ -81,6 +82,7 @@ class Application extends App { $notificationManager->registerNotifierService(AuthenticationNotifier::class); $eventDispatcher->addListener(AddMissingIndicesEvent::class, function (AddMissingIndicesEvent $event) { + $dbType = $this->getContainer()->get(SystemConfig::class)->getSystemValue('dbtype', 'sqlite'); $event->addMissingIndex( 'share', 'share_with_index', @@ -237,6 +239,15 @@ class Application extends App { ['appid', 'configkey'] ); + if ($dbType !== 'oci') { + $event->addMissingIndex( + 'preferences', + 'preferences_configvalue', + ['configvalue'], + ['lengths' => [80]] + ); + } + $event->addMissingIndex( 'mounts', 'mounts_class_index', diff --git a/core/Migrations/Version13000Date20170718121200.php b/core/Migrations/Version13000Date20170718121200.php index da83b0732d8..b4968e06397 100644 --- a/core/Migrations/Version13000Date20170718121200.php +++ b/core/Migrations/Version13000Date20170718121200.php @@ -31,6 +31,7 @@ */ namespace OC\Core\Migrations; +use Doctrine\DBAL\Platforms\OraclePlatform; use Doctrine\DBAL\Platforms\PostgreSQL94Platform; use OCP\DB\ISchemaWrapper; use OCP\DB\Types; @@ -332,6 +333,9 @@ class Version13000Date20170718121200 extends SimpleMigrationStep { ]); $table->setPrimaryKey(['userid', 'appid', 'configkey']); $table->addIndex(['appid', 'configkey'], 'preferences_app_key'); + if (!$this->connection->getDatabasePlatform() instanceof OraclePlatform) { + $table->addIndex(['configvalue'], 'preferences_configvalue', [], ['lengths' => [80]]); + } } if (!$schema->hasTable('properties')) {