Permalink
Browse files

MDL-33617 add new index to improve perf of enrol related role_assignm…

…ents

Conflicts:

	version.php
  • Loading branch information...
1 parent c8b7088 commit 95896749a52c6d082dd99b8dc7bb80e1c8f6178b @skodak skodak committed with Sam Hemelryk Jun 25, 2012
Showing with 18 additions and 2 deletions.
  1. +2 −1 lib/db/install.xml
  2. +15 −0 lib/db/upgrade.php
  3. +1 −1 version.php
View
@@ -1130,7 +1130,8 @@
<INDEXES>
<INDEX NAME="sortorder" UNIQUE="false" FIELDS="sortorder" NEXT="rolecontext"/>
<INDEX NAME="rolecontext" UNIQUE="false" FIELDS="roleid, contextid" COMMENT="Index on roleid and contextid" PREVIOUS="sortorder" NEXT="usercontextrole"/>
- <INDEX NAME="usercontextrole" UNIQUE="false" FIELDS="userid, contextid, roleid" COMMENT="Index on userid, contextid and roleid" PREVIOUS="rolecontext"/>
+ <INDEX NAME="usercontextrole" UNIQUE="false" FIELDS="userid, contextid, roleid" COMMENT="Index on userid, contextid and roleid" PREVIOUS="rolecontext" NEXT="component-itemid-userid"/>
+ <INDEX NAME="component-itemid-userid" UNIQUE="false" FIELDS="component, itemid, userid" PREVIOUS="usercontextrole"/>
</INDEXES>
</TABLE>
<TABLE NAME="role_capabilities" COMMENT="permission has to be signed, overriding a capability for a particular role in a particular context" PREVIOUS="role_assignments" NEXT="role_names">
View
@@ -899,6 +899,21 @@ function xmldb_main_upgrade($oldversion) {
upgrade_main_savepoint(true, 2012062500.02);
}
+ if ($oldversion < 2012062501.01) {
+
+ // Define index component-itemid-userid (not unique) to be added to role_assignments
+ $table = new xmldb_table('role_assignments');
+ $index = new xmldb_index('component-itemid-userid', XMLDB_INDEX_NOTUNIQUE, array('component', 'itemid', 'userid'));
+
+ // Conditionally launch add index component-itemid-userid
+ if (!$dbman->index_exists($table, $index)) {
+ $dbman->add_index($table, $index);
+ }
+
+ // Main savepoint reached
+ upgrade_main_savepoint(true, 2012062501.01);
+ }
+
return true;
}
View
@@ -30,7 +30,7 @@
defined('MOODLE_INTERNAL') || die();
-$version = 2012062501.00; // YYYYMMDD = weekly release date of this DEV branch
+$version = 2012062501.01; // YYYYMMDD = weekly release date of this DEV branch
// RR = release increments - 00 in DEV branches
// .XX = incremental changes

0 comments on commit 9589674

Please sign in to comment.