AW: [PHP] Re: Is select_db necessary?
| From: | Ralph Deffke | Date: | Wed, 12 Aug 2009 14:41:22 +0000 |
| Subject: | AW: [PHP] Re: Is select_db necessary? | ||
| References: | 1 2 3 4 5 6 7 | Groups: | php.general |
| Request: | Send a blank email to php-general+get-296702@lists.php.net to get a copy of this message | ||
what are telling the logs on that code?
<?php
$link = mysql_connect( /* settings */);
mysql_select_db( 'database', $link);
$result = mysql_query( 'SELECT * FROM <table>', $link );
$result = mysql_query( 'SELECT * FROM <anothertable>', $link );
$result = mysql_query( 'SELECT * FROM <anothertable>', $link );
$result = mysql_query( 'SELECT * FROM <anothertable>', $link );
$result = mysql_query( 'SELECT * FROM <anothertable>', $link );
$result = mysql_query( 'SELECT * FROM <table>', $link );
would be interesting to see.
I personaly woudn't spend the time on logs, a computer is logical, I try to be logical, and I
would
try to create code which is logical speedy. I expect the database kernel programmer the same.
I think then we are on the secure side.
ralph_deffke@yahoo.de
________________________________
Von: Martin Scotta <martinscotta@gmail.com>
An: Ralph Deffke <ralph_deffke@yahoo.de>
CC: php-general@lists.php.net
Gesendet: Mittwoch, den 12. August 2009, 16:18:01 Uhr
Betreff: Re: [PHP] Re: Is select_db necessary?
Wed, Aug 12, 2009 at 10:37 AM, Ralph Deffke <ralph_deffke@yahoo.de> wrote:
>I agree totally, are we not dicussing speed issues all the time? and then we
>>recommend a code doing an unessesary job on every call?
>
>>an ANSI selct db in the sql forces any database to run the internal select
>>db because there would be no check if the databse is the current one.
>>because, databasedevelopers can espext some smartness of us, the
>>programmers. its a lot off stuff to do for the database to select a
>>database. for shure, the database leafs that IN OUR hand to avoid to force
>>time consuming server resources.
>
>>ralph
>ralph_deffke@yahoo.de
>
>>"Colin Guthrie" <gmane@colin.guthr.ie> wrote in message
>>news:h5ug1h$tjb$1@ger.gmane.org...
>
>> 'Twas brillig, and Jay Blanchard at 12/08/09 13:53 did gyre and gimble:
>>> > Jay Blanchard wrote:
>>> >> SELECT a.foo, a.bar
>>> >> FROM myDatabase.myTable a
>>> >> WHERE you set other conditions here
>>> >>
>>> >> All that is required is that you establish a connection to a server.
>>> >
>>> > If I recall correctly, this will cause issues with replication in
>>> > MySQL... insofar as you perform amodifying query.
>>> > [/snip]
>>> >
>>> > You're correct with regards to queries that modify on replicated
>>> > systems. If all you're doing is gathering data then this will work just
>>> > fine, is somewhat self-documenting (especially in lengthier code
>>> > containers), and very flexible. It also leaves the selection in the
>>> > database's hands, and as we almost always say, "let the database do the
>>> > work when it can".
>>>
>>> I'm interested to know why you consider this to be very flexible and how
>>> this leaves the selection in the database's hands?
>>>
>>> If I were to implement this and they try some destructive testing/demo
>>> on a sacrificial database, I'd have to use a whole other server instance
>>> (as all the queries would hardcode in the db name).
>>>
>>> Is it not more flexible if you omit the table name in every single query
>>> and specify it once in your bootstrap/connection code? Thus doing tests
>>> on other dbs etc. is a pretty simple switch of the connection code.
>>>
>>> Also telling the db engine what database you want to use in every query
>>> is not, IMO, leaving the selection in the the database's hands.
>>>
>>> Just curious as to the rationale here :)
>>>
>>> Col
>>>
>>>
>>>
>>>
>>> --
>>>
>>> Colin Guthrie
>>> gmane(at)colin.guthr.ie
>>> http://colin.guthr.ie/
>>>
>>> Day Job:
>>> Tribalogic Limited [http://www.tribalogic.net/]
>>> Open Source:
>>> Mandriva Linux Contributor [http://www.mandriva.com/]
>>> PulseAudio Hacker [http://www.pulseaudio.org/]
>>> Trac Hacker [http://trac.edgewall.org/]
>>>
>
>
>
>>--
>>PHP General Mailing List (http://www.php.net/)
>>To unsubscribe, visit: http://www.php.net/unsub.php
>
>
<?php
$link = mysql_connect( /* settings */);
mysql_select_db( 'database', $link);
$result = mysql_query( 'SELECT * FROM <table>', $link );
What SQL was sent to the database?
Looking at bin logs I've found this.
1. use database => mysql_select_db
2. use database: SELECT * FROM <table> => mysql_query
The DB is usually a common bottle-neck for most applications.
You can have several webservers, but can't do that with the DB... of course, you can have
multiples slaves but just 1 master.
is this the best way to send queries?
What's the better and faster way?
--
Martin Scotta