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

Reply
 
Thread Tools Display Modes
  #1  
Old 03-22-2009, 11:13 PM
ludachris ludachris is offline
 
Join Date: Feb 2002
Posts: 287
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default Is this page too server intensive?

I have a custom vB page on the site that pulls user data and sorts it. I have some stats turned on and this is what shows up for this page:
Quote:
Page generated in 1.15693402 seconds (2.60% PHP - 97.40% MySQL) with 34 queries
Is that going to kill the db? The page loads quickly enough in the beginning.

I made some tweaks to this page a couple weeks ago, mainly adding a few sorting options, and it seems that after I made the page live, it results in the db slowing down until it crashes with too many connections.
Reply With Quote
  #2  
Old 03-22-2009, 11:50 PM
TigerC10's Avatar
TigerC10 TigerC10 is offline
 
Join Date: Apr 2006
Location: Austin, TX
Posts: 616
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

That is kind of intensive, but it's not terrible. Unless you've got hundreds or thousands of people accessing the page at once, it shouldn't be a problem.

What you might be having a problem with is that you open a connection to the database, but you don't close it. Are you using vBulletin's database functions or are these your own?
Reply With Quote
  #3  
Old 03-23-2009, 12:07 AM
Reeve of shinra's Avatar
Reeve of shinra Reeve of shinra is offline
 
Join Date: Oct 2001
Location: NYC
Posts: 1,896
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Maybe you can pull it once a day (via vb cron) and store it in the vb cache?
Reply With Quote
  #4  
Old 03-23-2009, 12:23 AM
ragtek ragtek is offline
 
Join Date: Mar 2006
Location: austria, croatia
Posts: 1,630
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Why put them to the vb cache(you mean datastore or?) when they are just needed on one site?
Caching idee is good, but i wouldn't put them to the datastore
Reply With Quote
  #5  
Old 03-23-2009, 12:27 AM
ludachris ludachris is offline
 
Join Date: Feb 2002
Posts: 287
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

The cron job idea is interesting.

--------------- Added [DATE]1237771673[/DATE] at [TIME]1237771673[/TIME] ---------------

Quote:
Originally Posted by TigerC10 View Post
That is kind of intensive, but it's not terrible. Unless you've got hundreds or thousands of people accessing the page at once, it shouldn't be a problem.

What you might be having a problem with is that you open a connection to the database, but you don't close it. Are you using vBulletin's database functions or are these your own?
It's a stand alone page using the suggested method of building a vb page outside of vb. How exactly do you use vb's db functions?
Reply With Quote
  #6  
Old 03-23-2009, 12:39 AM
TigerC10's Avatar
TigerC10 TigerC10 is offline
 
Join Date: Apr 2006
Location: Austin, TX
Posts: 616
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

A thought occurred to me, are there search spiders on your board? Because if they're on that page, they could be the ones killing your site. Turn off the visibility to unregistered/guest users.
Reply With Quote
  #7  
Old 03-23-2009, 10:11 AM
Dismounted's Avatar
Dismounted Dismounted is offline
 
Join Date: Jun 2005
Location: Melbourne, Australia
Posts: 15,047
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Could you show us the queries?
Reply With Quote
  #8  
Old 03-23-2009, 12:47 PM
ludachris ludachris is offline
 
Join Date: Feb 2002
Posts: 287
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Sure, here is where I think there could be issues:

Code:
/////// Get total user count //////
   $userscount=$db->query_first("SELECT COUNT(*) AS users
                                     FROM " . TABLE_PREFIX . "user AS user, " . TABLE_PREFIX . "userfield AS userfield
                                     WHERE userfield.field2=\"West Virginia\" AND userfield.field19!=\"\" AND userfield.field20!=\"\" AND userfield.field9!=\"\" AND userfield.field68!=\"\" AND userfield.field69!=\"\" AND userfield.field71!=\"\" AND userfield.field72!=\"\" 
                                     AND user.userid = userfield.userid");

/////// Set up pagination //////
   $numberpages = $userscount['users'] / $perpage;
   $numberpages = ceil($numberpages);

   if (!isset($pagenumber) or ($pagenumber < 1) or ($pagenumber > $numberpages))
    $pagenumber = 1;

    $pos = ($pagenumber-1) * $perpage;


/////// Get all users //////
	  $users=$db->query("SELECT *
                          FROM " . TABLE_PREFIX . "user AS user, " . TABLE_PREFIX . "userfield AS userfield
                          WHERE user.userid = userfield.userid
                          WHERE userfield.field2=\"West Virginia\" AND userfield.field19!=\"\" AND userfield.field20!=\"\" AND userfield.field9!=\"\" AND userfield.field68!=\"\" AND userfield.field69!=\"\" AND userfield.field71!=\"\" AND userfield.field72!=\"\"
                          ORDER BY userfield.field68 DESC
                          LIMIT $pos,$perpage");

   $counter=0;
Is that enough?

--------------- Added [DATE]1237902053[/DATE] at [TIME]1237902053[/TIME] ---------------

Did you need more info than what I posted?
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:19 AM.


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.03860 seconds
  • Memory Usage 2,228KB
  • 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)bbcode_code
  • (2)bbcode_quote
  • (1)footer
  • (1)forumjump
  • (1)forumrules
  • (1)gobutton
  • (1)header
  • (1)headinclude
  • (1)navbar
  • (3)navbar_link
  • (120)option
  • (8)post_thanks_box
  • (8)post_thanks_button
  • (1)post_thanks_javascript
  • (1)post_thanks_navbar_search
  • (8)post_thanks_postbit_info
  • (8)postbit
  • (8)postbit_onlinestatus
  • (8)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_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
  • tag_fetchbit_complete
  • forumrules
  • navbits
  • navbits_complete
  • showthread_complete