From 9e251a1abcc50af0f678a17d3a688f4ba9e4a4fc Mon Sep 17 00:00:00 2001 From: Mario Vavti Date: Thu, 15 Feb 2018 19:24:15 +0100 Subject: some more DB tuning. --- Zotlabs/Module/Channel.php | 4 ++-- Zotlabs/Module/Pubstream.php | 10 +++++----- boot.php | 2 +- install/schema_mysql.sql | 6 ++++-- install/update.php | 18 +++++++++++++++++- 5 files changed, 29 insertions(+), 11 deletions(-) diff --git a/Zotlabs/Module/Channel.php b/Zotlabs/Module/Channel.php index 3dab85410..231146999 100644 --- a/Zotlabs/Module/Channel.php +++ b/Zotlabs/Module/Channel.php @@ -251,9 +251,9 @@ class Channel extends \Zotlabs\Web\Controller { else { $r = q("SELECT item.parent AS item_id FROM item left join abook on ( item.author_xchan = abook.abook_xchan $abook_uids ) - WHERE true and uid = %d $item_normal + WHERE true and item.uid = %d AND item.item_thread_top = 1 $item_normal AND (abook.abook_blocked = 0 or abook.abook_flags is null) - AND item.item_wall = 1 AND item.item_thread_top = 1 + AND item.item_wall = 1 $sql_extra $sql_extra2 ORDER BY created DESC $pager_sql ", intval(\App::$profile['profile_uid']) diff --git a/Zotlabs/Module/Pubstream.php b/Zotlabs/Module/Pubstream.php index afe53eca7..af7bc7658 100644 --- a/Zotlabs/Module/Pubstream.php +++ b/Zotlabs/Module/Pubstream.php @@ -166,7 +166,8 @@ class Pubstream extends \Zotlabs\Web\Controller { $net_query = (($net) ? " left join xchan on xchan_hash = author_xchan " : ''); $net_query2 = (($net) ? " and xchan_network = '" . protect_sprintf(dbesc($net)) . "' " : ''); - + + $abook_uids = " and abook.abook_channel = " . intval(\App::$profile['profile_uid']) . " "; $simple_update = (($_SESSION['loadtime']) ? " AND item.changed > '" . datetime_convert('UTC','UTC',$_SESSION['loadtime']) . "' " : ''); @@ -185,7 +186,7 @@ class Pubstream extends \Zotlabs\Web\Controller { if($load) { if($mid) { $r = q("SELECT parent AS item_id FROM item - left join abook on item.author_xchan = abook.abook_xchan + left join abook on item.author_xchan = abook.abook_xchan $net_query WHERE mid like '%s' $uids $item_normal and (abook.abook_blocked = 0 or abook.abook_flags is null) @@ -196,10 +197,9 @@ class Pubstream extends \Zotlabs\Web\Controller { else { // Fetch a page full of parent items for this page $r = q("SELECT item.id AS item_id FROM item - left join abook on item.author_xchan = abook.abook_xchan + left join abook on ( item.author_xchan = abook.abook_xchan $abook_uids ) $net_query - WHERE item_thread_top = 1 $uids $item_normal - AND item.parent = item.id + WHERE true $uids and item.item_thread_top = 1 $item_normal and (abook.abook_blocked = 0 or abook.abook_flags is null) $sql_extra3 $sql_extra $sql_nets $net_query2 ORDER BY $ordering DESC $pager_sql " diff --git a/boot.php b/boot.php index e4f337022..f6fb4bec5 100755 --- a/boot.php +++ b/boot.php @@ -53,7 +53,7 @@ define ( 'PLATFORM_NAME', 'hubzilla' ); define ( 'STD_VERSION', '3.1.9' ); define ( 'ZOT_REVISION', '1.3' ); -define ( 'DB_UPDATE_VERSION', 1201 ); +define ( 'DB_UPDATE_VERSION', 1202 ); define ( 'PROJECT_BASE', __DIR__ ); diff --git a/install/schema_mysql.sql b/install/schema_mysql.sql index aa0ea0178..8d1c8d648 100644 --- a/install/schema_mysql.sql +++ b/install/schema_mysql.sql @@ -652,6 +652,8 @@ CREATE TABLE IF NOT EXISTS `item` ( KEY `uid_created` (`uid`, `created`), KEY `uid_item_unseen` (`uid`, `item_unseen`), KEY `uid_item_type` (`uid`, `item_type`), + KEY `uid_item_thread_top` (`uid`, `item_thread_top`), + KEY `uid_item_blocked` (`uid`, `item_blocked`), KEY `aid` (`aid`), KEY `owner_xchan` (`owner_xchan`), KEY `author_xchan` (`author_xchan`), @@ -680,7 +682,6 @@ CREATE TABLE IF NOT EXISTS `item` ( KEY `item_starred` (`item_starred`), KEY `item_uplink` (`item_uplink`), KEY `item_wall` (`item_wall`), - KEY `item_thread_top` (`item_thread_top`), KEY `item_notshown` (`item_notshown`), KEY `item_nsfw` (`item_nsfw`), KEY `item_relay` (`item_relay`), @@ -690,7 +691,8 @@ CREATE TABLE IF NOT EXISTS `item` ( KEY `item_verified` (`item_verified`), KEY `item_retained` (`item_retained`), KEY `item_rss` (`item_rss`), - KEY `item_consensus` (`item_consensus`) + KEY `item_consensus` (`item_consensus`), + KEY `item_deleted_pending_remove_changed` (`item_deleted`, `item_pending_remove`, `changed`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; CREATE TABLE IF NOT EXISTS `item_id` ( diff --git a/install/update.php b/install/update.php index d5ad394f4..56cf3d608 100644 --- a/install/update.php +++ b/install/update.php @@ -1,6 +1,6 @@