MDL-62621 comments: Add missing indexes on comments table

The composite index over the fields contextid, commentarea and itemid
helps the comments API to load all comments for the given area
effectively.

The index over the userid field helps the privacy API to load all
comments by the given user.
This commit is contained in:
David Mudrák
2018-07-02 10:13:00 +02:00
parent 543005a342
commit 6a3cffd3c6
3 changed files with 27 additions and 2 deletions
+5 -1
View File
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8" ?>
<XMLDB PATH="lib/db" VERSION="20180403" COMMENT="XMLDB file for core Moodle tables"
<XMLDB PATH="lib/db" VERSION="20180618" COMMENT="XMLDB file for core Moodle tables"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation="../../lib/xmldb/xmldb.xsd"
>
@@ -2638,7 +2638,11 @@
</FIELDS>
<KEYS>
<KEY NAME="primary" TYPE="primary" FIELDS="id"/>
<KEY NAME="fk_user" TYPE="foreign" FIELDS="userid" REFTABLE="user" REFFIELDS="id"/>
</KEYS>
<INDEXES>
<INDEX NAME="ix_concomitem" UNIQUE="false" FIELDS="contextid, commentarea, itemid" COMMENT="Allows the comments API to load comments for a particular area effectively."/>
</INDEXES>
</TABLE>
<TABLE NAME="external_services" COMMENT="built in and custom external services">
<FIELDS>
+21
View File
@@ -2233,5 +2233,26 @@ function xmldb_main_upgrade($oldversion) {
// Automatically generated Moodle v3.5.0 release upgrade line.
// Put any upgrade step following this.
if ($oldversion < 2018051700.07) {
// Add foreign key fk_user to the comments table.
$table = new xmldb_table('comments');
$key = new xmldb_key('fk_user', XMLDB_KEY_FOREIGN, array('userid'), 'user', array('id'));
$dbman->add_key($table, $key);
upgrade_main_savepoint(true, 2018051700.07);
}
if ($oldversion < 2018051700.08) {
// Add composite index ix_concomitem to the table comments.
$table = new xmldb_table('comments');
$index = new xmldb_index('ix_concomitem', XMLDB_INDEX_NOTUNIQUE, array('contextid', 'commentarea', 'itemid'));
if (!$dbman->index_exists($table, $index)) {
$dbman->add_index($table, $index);
}
upgrade_main_savepoint(true, 2018051700.08);
}
return true;
}
+1 -1
View File
@@ -29,7 +29,7 @@
defined('MOODLE_INTERNAL') || die();
$version = 2018051700.06; // 20180517 = branching date YYYYMMDD - do not modify!
$version = 2018051700.08; // 20180517 = branching date YYYYMMDD - do not modify!
// RR = release increments - 00 in DEV branches.
// .XX = incremental changes.