Go Back   vb.org Archive > vBulletin 3 Discussion > vB3 Programming Discussions
FAQ Community Calendar Today's Posts Search

 
 
Thread Tools Display Modes
Prev Previous Post   Next Post Next
  #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
 


Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump


All times are GMT. The time now is 08:23 PM.


Powered by vBulletin® Version 3.8.12 by vBS
Copyright ©2000 - 2025, vBulletin Solutions Inc.
X vBulletin 3.8.12 by vBS Debug Information
  • Page Generation 0.05152 seconds
  • Memory Usage 2,248KB
  • Queries Executed 11 (?)
More Information
Template Usage:
  • (1)SHOWTHREAD
  • (1)ad_footer_end
  • (1)ad_footer_start
  • (1)ad_header_end
  • (1)ad_header_logo
  • (1)ad_navbar_below
  • (1)ad_showthread_beforeqr
  • (3)bbcode_code
  • (1)footer
  • (1)forumjump
  • (1)forumrules
  • (1)gobutton
  • (1)header
  • (1)headinclude
  • (1)navbar
  • (3)navbar_link
  • (120)option
  • (2)post_thanks_box
  • (2)post_thanks_button
  • (1)post_thanks_javascript
  • (1)post_thanks_navbar_search
  • (2)post_thanks_postbit_info
  • (2)postbit
  • (2)postbit_onlinestatus
  • (2)postbit_wrapper
  • (1)showthread_list
  • (1)spacer_close
  • (1)spacer_open
  • (1)tagbit_wrapper 

Phrase Groups Available:
  • global
  • inlinemod
  • postbit
  • posting
  • reputationlevel
  • showthread
Included Files:
  • ./showthread.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_threadedmode.php
  • ./includes/functions_post_thanks.php 

Hooks Called:
  • init_startup
  • init_startup_session_setup_start
  • init_startup_session_setup_complete
  • cache_permissions
  • fetch_threadinfo_query
  • fetch_threadinfo
  • fetch_foruminfo
  • style_fetch
  • cache_templates
  • global_start
  • parse_templates
  • global_setup_complete
  • showthread_start
  • showthread_getinfo
  • forumjump
  • showthread_post_start
  • showthread_query_postids_threaded
  • showthread_threaded_construct_link
  • showthread_query
  • bbcode_fetch_tags
  • bbcode_create
  • showthread_postbit_create
  • postbit_factory
  • 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
  • tag_fetchbit_complete
  • forumrules
  • navbits
  • navbits_complete
  • showthread_complete