some more DB tuning.
This commit is contained in:
		| @@ -251,9 +251,9 @@ class Channel extends \Zotlabs\Web\Controller { | |||||||
| 				else { | 				else { | ||||||
| 					$r = q("SELECT item.parent AS item_id FROM item  | 					$r = q("SELECT item.parent AS item_id FROM item  | ||||||
| 						left join abook on ( item.author_xchan = abook.abook_xchan $abook_uids ) | 						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 (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 | 						$sql_extra $sql_extra2 | ||||||
| 						ORDER BY created DESC $pager_sql ", | 						ORDER BY created DESC $pager_sql ", | ||||||
| 						intval(\App::$profile['profile_uid']) | 						intval(\App::$profile['profile_uid']) | ||||||
|   | |||||||
| @@ -167,6 +167,7 @@ class Pubstream extends \Zotlabs\Web\Controller { | |||||||
| 		$net_query = (($net) ? " left join xchan on xchan_hash = author_xchan " : '');  | 		$net_query = (($net) ? " left join xchan on xchan_hash = author_xchan " : '');  | ||||||
| 		$net_query2 = (($net) ? " and xchan_network = '" . protect_sprintf(dbesc($net)) . "' " : ''); | 		$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']) . "' " : ''); | 		$simple_update = (($_SESSION['loadtime']) ? " AND item.changed > '" . datetime_convert('UTC','UTC',$_SESSION['loadtime']) . "' " : ''); | ||||||
| 	 | 	 | ||||||
| @@ -196,10 +197,9 @@ class Pubstream extends \Zotlabs\Web\Controller { | |||||||
| 				else { | 				else { | ||||||
| 					// Fetch a page full of parent items for this page | 					// Fetch a page full of parent items for this page | ||||||
| 					$r = q("SELECT item.id AS item_id FROM item  | 					$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 | 						$net_query | ||||||
| 						WHERE item_thread_top = 1 $uids $item_normal | 						WHERE true $uids and item.item_thread_top = 1 $item_normal | ||||||
| 						AND item.parent = item.id |  | ||||||
| 						and (abook.abook_blocked = 0 or abook.abook_flags is null) | 						and (abook.abook_blocked = 0 or abook.abook_flags is null) | ||||||
| 						$sql_extra3 $sql_extra $sql_nets $net_query2 | 						$sql_extra3 $sql_extra $sql_nets $net_query2 | ||||||
| 						ORDER BY $ordering DESC $pager_sql " | 						ORDER BY $ordering DESC $pager_sql " | ||||||
|   | |||||||
							
								
								
									
										2
									
								
								boot.php
									
									
									
									
									
								
							
							
						
						
									
										2
									
								
								boot.php
									
									
									
									
									
								
							| @@ -53,7 +53,7 @@ define ( 'PLATFORM_NAME',           'hubzilla' ); | |||||||
| define ( 'STD_VERSION',             '3.1.9' ); | define ( 'STD_VERSION',             '3.1.9' ); | ||||||
| define ( 'ZOT_REVISION',            '1.3' ); | define ( 'ZOT_REVISION',            '1.3' ); | ||||||
|  |  | ||||||
| define ( 'DB_UPDATE_VERSION',       1201  ); | define ( 'DB_UPDATE_VERSION',       1202  ); | ||||||
|  |  | ||||||
| define ( 'PROJECT_BASE',   __DIR__ ); | define ( 'PROJECT_BASE',   __DIR__ ); | ||||||
|  |  | ||||||
|   | |||||||
| @@ -652,6 +652,8 @@ CREATE TABLE IF NOT EXISTS `item` ( | |||||||
|   KEY `uid_created` (`uid`, `created`), |   KEY `uid_created` (`uid`, `created`), | ||||||
|   KEY `uid_item_unseen` (`uid`, `item_unseen`), |   KEY `uid_item_unseen` (`uid`, `item_unseen`), | ||||||
|   KEY `uid_item_type` (`uid`, `item_type`), |   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 `aid` (`aid`), | ||||||
|   KEY `owner_xchan` (`owner_xchan`), |   KEY `owner_xchan` (`owner_xchan`), | ||||||
|   KEY `author_xchan` (`author_xchan`), |   KEY `author_xchan` (`author_xchan`), | ||||||
| @@ -680,7 +682,6 @@ CREATE TABLE IF NOT EXISTS `item` ( | |||||||
|   KEY `item_starred` (`item_starred`), |   KEY `item_starred` (`item_starred`), | ||||||
|   KEY `item_uplink` (`item_uplink`), |   KEY `item_uplink` (`item_uplink`), | ||||||
|   KEY `item_wall` (`item_wall`), |   KEY `item_wall` (`item_wall`), | ||||||
|   KEY `item_thread_top` (`item_thread_top`), |  | ||||||
|   KEY `item_notshown` (`item_notshown`), |   KEY `item_notshown` (`item_notshown`), | ||||||
|   KEY `item_nsfw` (`item_nsfw`), |   KEY `item_nsfw` (`item_nsfw`), | ||||||
|   KEY `item_relay` (`item_relay`), |   KEY `item_relay` (`item_relay`), | ||||||
| @@ -690,7 +691,8 @@ CREATE TABLE IF NOT EXISTS `item` ( | |||||||
|   KEY `item_verified` (`item_verified`), |   KEY `item_verified` (`item_verified`), | ||||||
|   KEY `item_retained` (`item_retained`), |   KEY `item_retained` (`item_retained`), | ||||||
|   KEY `item_rss` (`item_rss`), |   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; | ) ENGINE=InnoDB  DEFAULT CHARSET=utf8mb4; | ||||||
|  |  | ||||||
| CREATE TABLE IF NOT EXISTS `item_id` ( | CREATE TABLE IF NOT EXISTS `item_id` ( | ||||||
|   | |||||||
| @@ -1,6 +1,6 @@ | |||||||
| <?php | <?php | ||||||
|  |  | ||||||
| define( 'UPDATE_VERSION' , 1201 ); | define( 'UPDATE_VERSION' , 1202 ); | ||||||
|  |  | ||||||
| /** | /** | ||||||
|  * |  * | ||||||
| @@ -3113,3 +3113,19 @@ function update_r1200() { | |||||||
| 		return UPDATE_SUCCESS; | 		return UPDATE_SUCCESS; | ||||||
| 	return UPDATE_FAILED; | 	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; | ||||||
|  | } | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user