View Single Post
  #1  
Old 06-12-2007, 08:46 AM
AlexanderT's Avatar
AlexanderT AlexanderT is offline
 
Join Date: Mar 2003
Posts: 294
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default Optimizing this SQL query - please help

Can you guys help me optimize this SQL query? It basically pulls out the latest ten threads with the condition that they are meant for the frontpage (custom column 'thread.frontpage' set to 1).

Code:
SELECT SQL_CACHE 
	thread.threadid, thread.title, thread.dateline, thread.postusername, thread.postuserid, thread.replycount, thread.pollid, thread.uploadid,
	post.pagetext, post.attach, post.postid,
	forum.forumid, forum.parentid, forum.title AS forumtitle,
	editcp_uploads.dateline AS filedate, editcp_uploads.filename, editcp_uploads.filewidth AS imagewidth, editcp_uploads.fileheight AS imageheight
FROM thread AS thread
LEFT JOIN post ON(thread.firstpostid = post.postid)
LEFT JOIN forum ON(forum.forumid = thread.forumid)
LEFT JOIN editcp_uploads ON(thread.uploadid = editcp_uploads.id)
WHERE thread.frontpage = '1'
	AND thread.forumid NOT IN (0,29)
	AND thread.visible = 1
	AND post.visible = 1
	AND thread.open <> 10
ORDER BY thread.dateline DESC
LIMIT 0,10

Code:
id	select_type	table			type		possible_keys	key		key_len	ref					rows	Extra
1	SIMPLE		thread			range		forumid			forumid	2	 						10357	Using where; Using filesort
1	SIMPLE		forum			eq_ref		PRIMARY			PRIMARY	2		thread.forumid		1	 
1	SIMPLE		editcp_uploads		eq_ref		PRIMARY			PRIMARY	2		thread.uploadid		1	 
1	SIMPLE		post			eq_ref		PRIMARY			PRIMARY	4		thread.firstpostid	1		Using where

Current indices:
Code:
Keyname  	Type  	Cardinality   	Field
PRIMARY 	PRIMARY 10382  			threadid
postuserid 	INDEX 	1730  			postuserid
pollid 		INDEX 	188  			pollid
dateline 	INDEX 	10382  			dateline
lastpost 	INDEX 	10382  			lastpost
lastposter 	INDEX 	1483  			lastposter
forumid 	INDEX 	10382  			forumid, visible, sticky, lastpost
title 		FULLTEXT 	1  			title

Basically I would prevent the query from going through all existing thread rows. If it's not possible to optimize this query, perhaps two more simple queries could do the trick?

Thanks!
Reply With Quote
 
X vBulletin 3.8.12 by vBS Debug Information
  • Page Generation 0.01155 seconds
  • Memory Usage 1,767KB
  • Queries Executed 11 (?)
More Information
Template Usage:
  • (1)SHOWTHREAD_SHOWPOST
  • (1)ad_footer_end
  • (1)ad_footer_start
  • (1)ad_header_end
  • (1)ad_header_logo
  • (1)ad_navbar_below
  • (3)bbcode_code
  • (1)footer
  • (1)gobutton
  • (1)header
  • (1)headinclude
  • (6)option
  • (1)post_thanks_box
  • (1)post_thanks_button
  • (1)post_thanks_javascript
  • (1)post_thanks_navbar_search
  • (1)post_thanks_postbit_info
  • (1)postbit
  • (1)postbit_onlinestatus
  • (1)postbit_wrapper
  • (1)spacer_close
  • (1)spacer_open 

Phrase Groups Available:
  • global
  • postbit
  • reputationlevel
  • showthread
Included Files:
  • ./showpost.php
  • ./global.php
  • ./includes/init.php
  • ./includes/class_core.php
  • ./includes/config.php
  • ./includes/functions.php
  • ./includes/class_hook.php
  • ./includes/modsystem_functions.php
  • ./includes/functions_bigthree.php
  • ./includes/class_postbit.php
  • ./includes/class_bbcode.php
  • ./includes/functions_reputation.php
  • ./includes/functions_post_thanks.php 

Hooks Called:
  • init_startup
  • init_startup_session_setup_start
  • init_startup_session_setup_complete
  • cache_permissions
  • fetch_postinfo_query
  • fetch_postinfo
  • fetch_threadinfo_query
  • fetch_threadinfo
  • fetch_foruminfo
  • style_fetch
  • cache_templates
  • global_start
  • parse_templates
  • global_setup_complete
  • showpost_start
  • bbcode_fetch_tags
  • bbcode_create
  • postbit_factory
  • showpost_post
  • postbit_display_start
  • post_thanks_function_post_thanks_off_start
  • post_thanks_function_post_thanks_off_end
  • post_thanks_function_fetch_thanks_start
  • post_thanks_function_fetch_thanks_end
  • post_thanks_function_thanked_already_start
  • post_thanks_function_thanked_already_end
  • fetch_musername
  • postbit_imicons
  • bbcode_parse_start
  • bbcode_parse_complete_precache
  • bbcode_parse_complete
  • postbit_display_complete
  • post_thanks_function_can_thank_this_post_start
  • showpost_complete