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 02-27-2009, 06:07 PM
kau kau is offline
 
Join Date: Jul 2002
Posts: 253
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default diff betw $vbulletin->db->query_write and $db->query_write

Whats the difference between $vbulletin->db->query_write and $db->query_write and can this effect vbulletin negatively to use the wrong one or cause table locking errors? Thanks
Reply With Quote
  #2  
Old 02-27-2009, 06:25 PM
TigerC10's Avatar
TigerC10 TigerC10 is offline
 
Join Date: Apr 2006
Location: Austin, TX
Posts: 616
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

There is no difference. They are the same because of this code:
PHP Code:
$db $vbulletin->db
It's just that not all of the PHP files have enough queries to warrant creating a $db object. Custom PHP files only have $vbulletin defined in them when you include global, so you'd have to create the $db object yourself (if you really want it).


The only reason for it, is to lighten the lookup load on the PHP engine. It's faster to lookup $db->query_write() than it is to lookup $vbulletin->db->db_query_write(). But it's not really noticibly faster unless you're running thousands upon thousands of queries at once.
Reply With Quote
  #3  
Old 02-28-2009, 11:18 AM
Marco van Herwaarden Marco van Herwaarden is offline
 
Join Date: Jul 2004
Posts: 25,415
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

I doubt it is any faster, it is only shorter to type so saves a bit of work for the developers.
Reply With Quote
  #4  
Old 02-28-2009, 12:16 PM
Dismounted's Avatar
Dismounted Dismounted is offline
 
Join Date: Jun 2005
Location: Melbourne, Australia
Posts: 15,047
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Note that $db is not always in scope - I always use $vbulletin->db to be safe.
Reply With Quote
  #5  
Old 02-28-2009, 04:16 PM
TigerC10's Avatar
TigerC10 TigerC10 is offline
 
Join Date: Apr 2006
Location: Austin, TX
Posts: 616
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Quote:
Originally Posted by Marco van Herwaarden View Post
I doubt it is any faster, it is only shorter to type so saves a bit of work for the developers.
Under the covers, the PHP engine doesn't have to look through the $vbulletin object which has a lot of other variables in it - consider this psuedo code...

array1 = {23, 1, 453, 87, 6, 2, 7, 9, 10, 135, 37, 134, 64, 1975, 23,753,235,97}

value1 = array1[ indexof(235) ]

In order to call 235 by value (or name) instead of by index, we have to use the "index of" function which searches the array linearly until it finds 235. But if we do that search and assign it to a variable, then we don't have to keep doing that time wasting search.

By calling the db object by name from the $vbulletin object - the PHP engine has to do a linear search in the $vbulletin object. But if you only do that once to assign the db object to $db, you don't have to do that linear search every single time. It is faster to lookup $db than it is to lookup $vbulletin->db.

However, the difference in speed is very small, and it's only noticible if you're doing thousands upon thousands of queries at once.

But as I mentioned before, and as Dismounted pointed out, $db doesn't always exist - and if it doesn't (especially in custom .php files) you would have to define it yourself.
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 07:37 PM.


Powered by vBulletin® Version 3.8.12 by vBS
Copyright ©2000 - 2024, vBulletin Solutions Inc.
X vBulletin 3.8.12 by vBS Debug Information
  • Page Generation 0.04329 seconds
  • Memory Usage 2,202KB
  • 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_php
  • (1)bbcode_quote
  • (1)footer
  • (1)forumjump
  • (1)forumrules
  • (1)gobutton
  • (1)header
  • (1)headinclude
  • (1)navbar
  • (3)navbar_link
  • (120)option
  • (5)post_thanks_box
  • (5)post_thanks_button
  • (1)post_thanks_javascript
  • (1)post_thanks_navbar_search
  • (5)post_thanks_postbit_info
  • (5)postbit
  • (5)postbit_onlinestatus
  • (5)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
  • tag_fetchbit_complete
  • forumrules
  • navbits
  • navbits_complete
  • showthread_complete