Skip to content

Commit

Permalink
Fixed #1249 - Performance issue on some systems with shared folders
Browse files Browse the repository at this point in the history
  • Loading branch information
torinfo committed Sep 12, 2023
1 parent 9e163b2 commit 4f3840a
Show file tree
Hide file tree
Showing 2 changed files with 45 additions and 3 deletions.
6 changes: 4 additions & 2 deletions setup/basic.sql
Expand Up @@ -248,7 +248,8 @@ CREATE TABLE `$templaterights` (
`role` char(255) DEFAULT NULL,
`folder` bigint(20) DEFAULT NULL,
`notes` char(255) DEFAULT NULL,
KEY `index1` (`template_id`,`user_id`,`role`(10))
KEY `index1` (`template_id`,`user_id`,`role`(10)),
KEY `index2` (`folder`)
) DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;

CREATE TABLE `$templatesyndication` (
Expand Down Expand Up @@ -307,7 +308,8 @@ CREATE TABLE `$folderrights` (
`folder_parent` int(11) NOT NULL,
`role` char(255) DEFAULT NULL,
PRIMARY KEY (`id`),
KEY `index1` (`folder_id`,`login_id`,`role`(10))
KEY `index1` (`folder_id`,`login_id`,`role`(10)),
KEY `index2` (`folder_parent`)
) DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;

CREATE TABLE `$folder_group_rights` (
Expand Down
42 changes: 41 additions & 1 deletion upgrade.php
Expand Up @@ -1398,4 +1398,44 @@ function upgrade_41()
$message = "Adding xapi_force_anonymous_lrs column to sitedetails - ok ? " . ($error ? 'true' : 'false') . "<br>";

return $message;
}
}

function upgrade_42()
{
global $xerte_toolkits_site;

// Create an index for templaterights
$table = table_by_key('templaterights');

// First check if index already exists
$sql = "SELECT COUNT(1) as count FROM INFORMATION_SCHEMA.STATISTICS WHERE TABLE_SCHEMA = '$xerte_toolkits_site->database_name' AND TABLE_NAME='$table' AND INDEX_NAME='index2'";
$result = db_query_one($sql);
if ($result !== false && $result['count'] == '0') {
$ok = _upgrade_db_query("ALTER TABLE `$table` ADD INDEX `index2` (`folder` ASC);");
$message = "Creating index2 on table templaterights - ok ? " . ($ok ? 'true' : 'false') . "<br>";

return $message;
}
$message = 'Index on templaterights table is already present';
return $message;
}

function upgrade_43()
{
global $xerte_toolkits_site;

// Create an index for folderrights.folder_parent
$table = table_by_key('folderrights');

// First check if index already exists
$sql = "SELECT COUNT(1) as count FROM INFORMATION_SCHEMA.STATISTICS WHERE TABLE_SCHEMA = '$xerte_toolkits_site->database_name' AND TABLE_NAME='$table' AND INDEX_NAME='index2'";
$result = db_query_one($sql);
if ($result !== false && $result['count'] == '0') {
$ok = _upgrade_db_query("ALTER TABLE `$table` ADD INDEX `index2` (`folder_parent` ASC);");
$message = "Creating index2 on table folderrights - ok ? " . ($ok ? 'true' : 'false') . "<br>";

return $message;
}
$message = 'Index on folderrights table is already present';
return $message;
}

0 comments on commit 4f3840a

Please sign in to comment.