diff options
author | Mario Vavti <mario@mariovavti.com> | 2018-02-15 19:24:15 +0100 |
---|---|---|
committer | Mario Vavti <mario@mariovavti.com> | 2018-02-15 19:24:15 +0100 |
commit | 9e251a1abcc50af0f678a17d3a688f4ba9e4a4fc (patch) | |
tree | cd58fb823f3b9019c2e69f533027eaedcd9cc208 | |
parent | 45b42cbc1c5356da61923f5bc2fbca1cec9f9119 (diff) | |
download | volse-hubzilla-9e251a1abcc50af0f678a17d3a688f4ba9e4a4fc.tar.gz volse-hubzilla-9e251a1abcc50af0f678a17d3a688f4ba9e4a4fc.tar.bz2 volse-hubzilla-9e251a1abcc50af0f678a17d3a688f4ba9e4a4fc.zip |
some more DB tuning.
-rw-r--r-- | Zotlabs/Module/Channel.php | 4 | ||||
-rw-r--r-- | Zotlabs/Module/Pubstream.php | 10 | ||||
-rwxr-xr-x | boot.php | 2 | ||||
-rw-r--r-- | install/schema_mysql.sql | 6 | ||||
-rw-r--r-- | 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 " @@ -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 @@ <?php -define( 'UPDATE_VERSION' , 1201 ); +define( 'UPDATE_VERSION' , 1202 ); /** * @@ -3113,3 +3113,19 @@ function update_r1200() { return UPDATE_SUCCESS; return UPDATE_FAILED; } + +function update_r1201() { + + if(ACTIVE_DBTYPE == DBTYPE_MYSQL) { + $r = q("ALTER TABLE item + DROP INDEX item_thread_top, + ADD INDEX uid_item_thread_top (uid, item_thread_top), + ADD INDEX uid_item_blocked (uid, item_blocked), + ADD INDEX item_deleted_pending_remove_changed (item_deleted, item_pending_remove, changed) + "); + } + + if($r) + return UPDATE_SUCCESS; + return UPDATE_FAILED; +} |