From d78cf954951e0ffc83eaa84dfc9e68b34c4da6dd Mon Sep 17 00:00:00 2001 From: Michael Date: Sun, 21 Feb 2021 05:28:27 +0000 Subject: [PATCH] Added index, join order fixed --- database.sql | 13 +++++++------ static/dbstructure.config.php | 1 + static/dbview.config.php | 24 ++++++++++++------------ 3 files changed, 20 insertions(+), 18 deletions(-) diff --git a/database.sql b/database.sql index 1b4ef429b9..296bd8a072 100644 --- a/database.sql +++ b/database.sql @@ -985,6 +985,7 @@ CREATE TABLE IF NOT EXISTS `post-content` ( `plink` varchar(255) NOT NULL DEFAULT '' COMMENT 'permalink or URL to a displayable copy of the message at its source', PRIMARY KEY(`uri-id`), INDEX `plink` (`plink`(191)), + INDEX `resource-id` (`resource-id`), FULLTEXT INDEX `title-content-warning-body` (`title`,`content-warning`,`body`), FOREIGN KEY (`uri-id`) REFERENCES `item-uri` (`id`) ON UPDATE RESTRICT ON DELETE CASCADE ) DEFAULT COLLATE utf8mb4_general_ci COMMENT='Content for all posts'; @@ -1592,9 +1593,9 @@ CREATE VIEW `post-view` AS SELECT `parent-post-author`.`network` AS `parent-author-network` FROM `post-user` STRAIGHT_JOIN `post-thread-user` ON `post-thread-user`.`uri-id` = `post-user`.`parent-uri-id` AND `post-thread-user`.`uid` = `post-user`.`uid` - LEFT JOIN `contact` ON `contact`.`id` = `post-user`.`contact-id` - LEFT JOIN `contact` AS `author` ON `author`.`id` = `post-user`.`author-id` - LEFT JOIN `contact` AS `owner` ON `owner`.`id` = `post-user`.`owner-id` + STRAIGHT_JOIN `contact` ON `contact`.`id` = `post-user`.`contact-id` + STRAIGHT_JOIN `contact` AS `author` ON `author`.`id` = `post-user`.`author-id` + STRAIGHT_JOIN `contact` AS `owner` ON `owner`.`id` = `post-user`.`owner-id` LEFT JOIN `contact` AS `causer` ON `causer`.`id` = `post-user`.`causer-id` LEFT JOIN `item-uri` ON `item-uri`.`id` = `post-user`.`uri-id` LEFT JOIN `item-uri` AS `thr-parent-item-uri` ON `thr-parent-item-uri`.`id` = `post-user`.`thr-parent-id` @@ -1750,9 +1751,9 @@ CREATE VIEW `post-thread-view` AS SELECT `parent-post-author`.`network` AS `parent-author-network` FROM `post-thread-user` INNER JOIN `post-user` ON `post-user`.`id` = `post-thread-user`.`post-user-id` - LEFT JOIN `contact` ON `contact`.`id` = `post-thread-user`.`contact-id` - LEFT JOIN `contact` AS `author` ON `author`.`id` = `post-thread-user`.`author-id` - LEFT JOIN `contact` AS `owner` ON `owner`.`id` = `post-thread-user`.`owner-id` + STRAIGHT_JOIN `contact` ON `contact`.`id` = `post-thread-user`.`contact-id` + STRAIGHT_JOIN `contact` AS `author` ON `author`.`id` = `post-thread-user`.`author-id` + STRAIGHT_JOIN `contact` AS `owner` ON `owner`.`id` = `post-thread-user`.`owner-id` LEFT JOIN `contact` AS `causer` ON `causer`.`id` = `post-thread-user`.`causer-id` LEFT JOIN `item-uri` ON `item-uri`.`id` = `post-thread-user`.`uri-id` LEFT JOIN `item-uri` AS `thr-parent-item-uri` ON `thr-parent-item-uri`.`id` = `post-user`.`thr-parent-id` diff --git a/static/dbstructure.config.php b/static/dbstructure.config.php index dad85d7b31..380e24699a 100644 --- a/static/dbstructure.config.php +++ b/static/dbstructure.config.php @@ -1042,6 +1042,7 @@ return [ "indexes" => [ "PRIMARY" => ["uri-id"], "plink" => ["plink(191)"], + "resource-id" => ["resource-id"], "title-content-warning-body" => ["FULLTEXT", "title", "content-warning", "body"], ] ], diff --git a/static/dbview.config.php b/static/dbview.config.php index 9ee4bbb62b..cfca9d07ae 100644 --- a/static/dbview.config.php +++ b/static/dbview.config.php @@ -139,7 +139,7 @@ "causer-link" => ["causer", "url"], "causer-addr" => ["causer", "addr"], "causer-name" => ["causer", "name"], - "causer-nick" => ["causer", "nick"], + "causer-nick" => ["causer", "nick"], "causer-avatar" => ["causer", "thumb"], "causer-network" => ["causer", "network"], "causer-blocked" => ["causer", "blocked"], @@ -170,15 +170,15 @@ "parent-guid" => ["parent-item-uri", "guid"], "parent-network" => ["parent-post", "network"], "parent-author-id" => ["parent-post", "author-id"], - "parent-author-link" => ["parent-post-author", "url"], + "parent-author-link" => ["parent-post-author", "url"], "parent-author-name" => ["parent-post-author", "name"], - "parent-author-network" => ["parent-post-author", "network"], + "parent-author-network" => ["parent-post-author", "network"], ], "query" => "FROM `post-user` STRAIGHT_JOIN `post-thread-user` ON `post-thread-user`.`uri-id` = `post-user`.`parent-uri-id` AND `post-thread-user`.`uid` = `post-user`.`uid` - LEFT JOIN `contact` ON `contact`.`id` = `post-user`.`contact-id` - LEFT JOIN `contact` AS `author` ON `author`.`id` = `post-user`.`author-id` - LEFT JOIN `contact` AS `owner` ON `owner`.`id` = `post-user`.`owner-id` + STRAIGHT_JOIN `contact` ON `contact`.`id` = `post-user`.`contact-id` + STRAIGHT_JOIN `contact` AS `author` ON `author`.`id` = `post-user`.`author-id` + STRAIGHT_JOIN `contact` AS `owner` ON `owner`.`id` = `post-user`.`owner-id` LEFT JOIN `contact` AS `causer` ON `causer`.`id` = `post-user`.`causer-id` LEFT JOIN `item-uri` ON `item-uri`.`id` = `post-user`.`uri-id` LEFT JOIN `item-uri` AS `thr-parent-item-uri` ON `thr-parent-item-uri`.`id` = `post-user`.`thr-parent-id` @@ -295,7 +295,7 @@ "causer-link" => ["causer", "url"], "causer-addr" => ["causer", "addr"], "causer-name" => ["causer", "name"], - "causer-nick" => ["causer", "nick"], + "causer-nick" => ["causer", "nick"], "causer-avatar" => ["causer", "thumb"], "causer-network" => ["causer", "network"], "causer-blocked" => ["causer", "blocked"], @@ -326,15 +326,15 @@ "parent-guid" => ["parent-item-uri", "guid"], "parent-network" => ["parent-post", "network"], "parent-author-id" => ["parent-post", "author-id"], - "parent-author-link" => ["parent-post-author", "url"], + "parent-author-link" => ["parent-post-author", "url"], "parent-author-name" => ["parent-post-author", "name"], - "parent-author-network" => ["parent-post-author", "network"], + "parent-author-network" => ["parent-post-author", "network"], ], "query" => "FROM `post-thread-user` INNER JOIN `post-user` ON `post-user`.`id` = `post-thread-user`.`post-user-id` - LEFT JOIN `contact` ON `contact`.`id` = `post-thread-user`.`contact-id` - LEFT JOIN `contact` AS `author` ON `author`.`id` = `post-thread-user`.`author-id` - LEFT JOIN `contact` AS `owner` ON `owner`.`id` = `post-thread-user`.`owner-id` + STRAIGHT_JOIN `contact` ON `contact`.`id` = `post-thread-user`.`contact-id` + STRAIGHT_JOIN `contact` AS `author` ON `author`.`id` = `post-thread-user`.`author-id` + STRAIGHT_JOIN `contact` AS `owner` ON `owner`.`id` = `post-thread-user`.`owner-id` LEFT JOIN `contact` AS `causer` ON `causer`.`id` = `post-thread-user`.`causer-id` LEFT JOIN `item-uri` ON `item-uri`.`id` = `post-thread-user`.`uri-id` LEFT JOIN `item-uri` AS `thr-parent-item-uri` ON `thr-parent-item-uri`.`id` = `post-user`.`thr-parent-id`