some more DB tuning.

This commit is contained in:
Mario Vavti 2018-02-15 19:24:15 +01:00
parent 45b42cbc1c
commit 9e251a1abc
5 changed files with 29 additions and 11 deletions

View File

@ -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'])

View File

@ -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 "

View File

@ -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__ );

View File

@ -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` (

View File

@ -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;
}