diff --git a/phpBB/develop/create_schema_files.php b/phpBB/develop/create_schema_files.php index a612a318a7..03932bcc13 100644 --- a/phpBB/develop/create_schema_files.php +++ b/phpBB/develop/create_schema_files.php @@ -1746,6 +1746,7 @@ function get_schema_struct() ), 'PRIMARY_KEY' => array('user_id', 'topic_id'), 'KEYS' => array( + 'topic_id' => array('INDEX', 'topic_id'), 'forum_id' => array('INDEX', 'forum_id'), ), ); diff --git a/phpBB/develop/mysql_upgrader.php b/phpBB/develop/mysql_upgrader.php index ae29b536bc..57230339e8 100644 --- a/phpBB/develop/mysql_upgrader.php +++ b/phpBB/develop/mysql_upgrader.php @@ -1236,6 +1236,7 @@ function get_schema_struct() ), 'PRIMARY_KEY' => array('user_id', 'topic_id'), 'KEYS' => array( + 'topic_id' => array('INDEX', 'topic_id'), 'forum_id' => array('INDEX', 'forum_id'), ), ); diff --git a/phpBB/docs/CHANGELOG.html b/phpBB/docs/CHANGELOG.html index ef432e72b3..efcb31bfe0 100644 --- a/phpBB/docs/CHANGELOG.html +++ b/phpBB/docs/CHANGELOG.html @@ -169,6 +169,7 @@
  • [Change] Disallow deleting the last question of the Q&A CAPTCHA.
  • [Change] Tweak Q&A CAPTCHA garbage collection.
  • [Change] Show a proper preview for the Q&A CAPTCHA. (Bug #56365)
  • +
  • [Change] Speed up topic move operation by adding an index for topic_id on the topics track table. (Bug #56545)
  • [Feature] Ability to use HTTP authentication in ATOM feeds by passing the GET parameter "auth=http".
  • diff --git a/phpBB/install/database_update.php b/phpBB/install/database_update.php index c338df0b80..c7205de89d 100644 --- a/phpBB/install/database_update.php +++ b/phpBB/install/database_update.php @@ -900,6 +900,11 @@ function database_update_info() 'drop_keys' => array( LOG_TABLE => array('log_time'), ), + 'add_index' => array( + TOPICS_TRACK_TABLE => array( + 'topic_id' => array('topic_id'), + ), + ), ), ); } diff --git a/phpBB/install/schemas/firebird_schema.sql b/phpBB/install/schemas/firebird_schema.sql index 16965e492b..85f86781de 100644 --- a/phpBB/install/schemas/firebird_schema.sql +++ b/phpBB/install/schemas/firebird_schema.sql @@ -1262,6 +1262,7 @@ CREATE TABLE phpbb_topics_track ( ALTER TABLE phpbb_topics_track ADD PRIMARY KEY (user_id, topic_id);; +CREATE INDEX phpbb_topics_track_topic_id ON phpbb_topics_track(topic_id);; CREATE INDEX phpbb_topics_track_forum_id ON phpbb_topics_track(forum_id);; # Table: 'phpbb_topics_posted' diff --git a/phpBB/install/schemas/mssql_schema.sql b/phpBB/install/schemas/mssql_schema.sql index 799d596e1b..960c6eeaed 100644 --- a/phpBB/install/schemas/mssql_schema.sql +++ b/phpBB/install/schemas/mssql_schema.sql @@ -1506,6 +1506,9 @@ ALTER TABLE [phpbb_topics_track] WITH NOCHECK ADD ) ON [PRIMARY] GO +CREATE INDEX [topic_id] ON [phpbb_topics_track]([topic_id]) ON [PRIMARY] +GO + CREATE INDEX [forum_id] ON [phpbb_topics_track]([forum_id]) ON [PRIMARY] GO diff --git a/phpBB/install/schemas/mysql_40_schema.sql b/phpBB/install/schemas/mysql_40_schema.sql index 683f58f2e8..19b1b4f0f7 100644 --- a/phpBB/install/schemas/mysql_40_schema.sql +++ b/phpBB/install/schemas/mysql_40_schema.sql @@ -861,6 +861,7 @@ CREATE TABLE phpbb_topics_track ( forum_id mediumint(8) UNSIGNED DEFAULT '0' NOT NULL, mark_time int(11) UNSIGNED DEFAULT '0' NOT NULL, PRIMARY KEY (user_id, topic_id), + KEY topic_id (topic_id), KEY forum_id (forum_id) ); diff --git a/phpBB/install/schemas/mysql_41_schema.sql b/phpBB/install/schemas/mysql_41_schema.sql index db80ffdf09..3b70630a9e 100644 --- a/phpBB/install/schemas/mysql_41_schema.sql +++ b/phpBB/install/schemas/mysql_41_schema.sql @@ -861,6 +861,7 @@ CREATE TABLE phpbb_topics_track ( forum_id mediumint(8) UNSIGNED DEFAULT '0' NOT NULL, mark_time int(11) UNSIGNED DEFAULT '0' NOT NULL, PRIMARY KEY (user_id, topic_id), + KEY topic_id (topic_id), KEY forum_id (forum_id) ) CHARACTER SET `utf8` COLLATE `utf8_bin`; diff --git a/phpBB/install/schemas/oracle_schema.sql b/phpBB/install/schemas/oracle_schema.sql index d34cd714b7..d577fce46c 100644 --- a/phpBB/install/schemas/oracle_schema.sql +++ b/phpBB/install/schemas/oracle_schema.sql @@ -1665,6 +1665,8 @@ CREATE TABLE phpbb_topics_track ( ) / +CREATE INDEX phpbb_topics_track_topic_id ON phpbb_topics_track (topic_id) +/ CREATE INDEX phpbb_topics_track_forum_id ON phpbb_topics_track (forum_id) / diff --git a/phpBB/install/schemas/postgres_schema.sql b/phpBB/install/schemas/postgres_schema.sql index 6e63b3b936..50b3979adb 100644 --- a/phpBB/install/schemas/postgres_schema.sql +++ b/phpBB/install/schemas/postgres_schema.sql @@ -1116,6 +1116,7 @@ CREATE TABLE phpbb_topics_track ( PRIMARY KEY (user_id, topic_id) ); +CREATE INDEX phpbb_topics_track_topic_id ON phpbb_topics_track (topic_id); CREATE INDEX phpbb_topics_track_forum_id ON phpbb_topics_track (forum_id); /* diff --git a/phpBB/install/schemas/sqlite_schema.sql b/phpBB/install/schemas/sqlite_schema.sql index 0ce7e23c57..7ee821d395 100644 --- a/phpBB/install/schemas/sqlite_schema.sql +++ b/phpBB/install/schemas/sqlite_schema.sql @@ -833,6 +833,7 @@ CREATE TABLE phpbb_topics_track ( PRIMARY KEY (user_id, topic_id) ); +CREATE INDEX phpbb_topics_track_topic_id ON phpbb_topics_track (topic_id); CREATE INDEX phpbb_topics_track_forum_id ON phpbb_topics_track (forum_id); # Table: 'phpbb_topics_posted'