Browse Source
perf: Add partial index on configvalue of preferences table
Signed-off-by: Julius Härtl <jus@bitgrid.net>
pull/41927/head
Julius Härtl
2 years ago
No known key found for this signature in database
GPG Key ID: 4C614C6ED2CDE6DF
2 changed files with
15 additions and
0 deletions
-
core/Application.php
-
core/Migrations/Version13000Date20170718121200.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', |
|
|
|
|
|
|
|
@ -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')) { |
|
|
|
|