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

Reply
 
Thread Tools Display Modes
  #41  
Old 04-23-2004, 01:51 AM
FASherman's Avatar
FASherman FASherman is offline
 
Join Date: Aug 2002
Posts: 289
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Optimizing modules/blocks isn't very difficult.

The previous version of vbportal did that in a few occurrances too. When I was using it, I removed them by rewriting the queries using left joins, reading the results into a cache array and extracting info from the cached array.

Even better is to load the cache array in mainfile.php and making it globally available to all/blocks and modules based on a single sql query.

Will all Nuke blocks/modules be optimized? Hardly. However, I can optimize the most popular over time ir provide programming expertise to others who wish to do so.
Reply With Quote
  #42  
Old 04-23-2004, 04:52 PM
FASherman's Avatar
FASherman FASherman is offline
 
Join Date: Aug 2002
Posts: 289
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Here's an example of what I mean. Lets say you're looking for a list of threads, but at the same time, you want to know what the name (not id) of the forum they're in, the test from the first post in that thread and the actual image url for that post's icon.

You COULD, as I have seen other code do, grab the thread info and for each row of thread info query the post, forum and icon tables. If you're grabbing 10 threads, thats 31 queries. WAY INEFFICIENT!

The right way to do it is with a single query and compounded left joins. Here is an example:

SELECT vb_thread.votenum, vb_thread.votetotal, vb_thread.replycount, vb_thread.threadid, vb_thread.iconid, vb_thread.title, vb_thread.postusername, vb_thread.lastposter, vb_thread.dateline, vb_icon.iconpath, vb_post.pagetext, vb_forum.title as forumtitle FROM vb_thread LEFT JOIN vb_icon ON (vb_thread.iconid=vb_icon.iconid) LEFT JOIN vb_post on (vb_thread.firstpostid=postid) LEFT JOIN vb_forum ON (vb_thread.forumid=vb_forum.forumid) WHERE vb_thread.forumid=$SEARCHFORUM ORDER BY sticky DESC, vb_thread.dateline DESC LIMIT 10

You are correct. I can't speak for the stock NUKE modules. But this is how MY code works. I take the time to make the most efficient use of the database that I possibly can.

Remember, I'm a Texan and this ain't my first rodeo.
Reply With Quote
  #43  
Old 04-26-2004, 07:05 PM
FASherman's Avatar
FASherman FASherman is offline
 
Join Date: Aug 2002
Posts: 289
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Future discussions regarding VB3Nuke development will take place at http://www.vb3nuke.com
Reply With Quote
Reply


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 03:44 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.08086 seconds
  • Memory Usage 2,185KB
  • Queries Executed 13 (?)
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
  • (1)ad_showthread_firstpost
  • (1)ad_showthread_firstpost_sig
  • (1)ad_showthread_firstpost_start
  • (1)footer
  • (1)forumjump
  • (1)forumrules
  • (1)gobutton
  • (1)header
  • (1)headinclude
  • (1)navbar
  • (3)navbar_link
  • (120)option
  • (1)pagenav
  • (1)pagenav_curpage
  • (2)pagenav_pagelink
  • (3)post_thanks_box
  • (3)post_thanks_button
  • (1)post_thanks_javascript
  • (1)post_thanks_navbar_search
  • (3)post_thanks_postbit_info
  • (3)postbit
  • (3)postbit_onlinestatus
  • (3)postbit_wrapper
  • (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_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
  • showthread_start
  • showthread_getinfo
  • forumjump
  • showthread_post_start
  • showthread_query_postids
  • 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
  • pagenav_page
  • pagenav_complete
  • tag_fetchbit_complete
  • forumrules
  • navbits
  • navbits_complete
  • showthread_complete