aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMario Vavti <mario@mariovavti.com>2018-02-15 19:24:15 +0100
committerMario Vavti <mario@mariovavti.com>2018-02-15 19:24:15 +0100
commit9e251a1abcc50af0f678a17d3a688f4ba9e4a4fc (patch)
treecd58fb823f3b9019c2e69f533027eaedcd9cc208
parent45b42cbc1c5356da61923f5bc2fbca1cec9f9119 (diff)
downloadvolse-hubzilla-9e251a1abcc50af0f678a17d3a688f4ba9e4a4fc.tar.gz
volse-hubzilla-9e251a1abcc50af0f678a17d3a688f4ba9e4a4fc.tar.bz2
volse-hubzilla-9e251a1abcc50af0f678a17d3a688f4ba9e4a4fc.zip
some more DB tuning.
-rw-r--r--Zotlabs/Module/Channel.php4
-rw-r--r--Zotlabs/Module/Pubstream.php10
-rwxr-xr-xboot.php2
-rw-r--r--install/schema_mysql.sql6
-rw-r--r--install/update.php18
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 @@
<?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;
+}