|  | Posted by Gary L. Burnore on 01/18/08 20:29 
On Fri, 18 Jan 2008 20:51:38 +0100, "Rik Wasmus"<luiheidsgoeroe@hotmail.com> wrote:
 
 >On Fri, 18 Jan 2008 20:46:01 +0100, Michael Austin
 ><maustin@firstdbasource.com> wrote:
 >
 >> Gary L. Burnore wrote:
 >>> [Carolyn's post left intact and comp.lang.php added]
 >>>  On Fri, 18 Jan 2008 09:27:47 -0500, Carolyn Marenger
 >>> <cajunk@marenger.com> wrote:
 >>>
 >>>> I am new to PHP/MySQL.  I would like some of your thoughts on when to
 >>>> use php code and when to use mysql queries.
 >>>>
 >>>> In the case I am working on, a learning project for myself, I am
 >>>> writing a contact management application.  Basically a phone book
 >>>> with   a many to many relationship between individuals and
 >>>> organizations, and one to many between individuals/organizations and
 >>>> the relevant data such as phone numbers.
 >>>>
 >>>> I am working on a page which lists all the individuals.  I have a
 >>>> horizontal listing at the top containing all the unique surname
 >>>> initials, which link to headings as the list progresses.  ie:
 >>>>
 >>>> -----
 >>>> A B N
 >>>>
 >>>> A
 >>>>   Abnew, Georgina
 >>>>   Adwit, Dave
 >>>>
 >>>> B
 >>>>   Biltmore, Garth
 >>>>
 >>>> N
 >>>>   Niles, Paulina
 >>>>   Norton, Alicia
 >>>> -----
 >>>>
 >>>> Currently, I have MySQL select all the unique initials and process
 >>>> that into an array.  The array is dumped to the screen as the index at
 >>>> the top.  Next the array is used for MySQL selects of surnames with
 >>>> that initial.
 >>>>
 >>>> In the above example that would result in 6 MySQL queries.  Assuming
 >>>> only English based names, no foreign character sets, no numbers, no
 >>>> symbols, that would result in a maximum of 27 queries.
 >>>>
 >>>> I could rewrite the PHP code to select all the names in a single query
 >>>> .  Then use PHP to process the list to make the index, headings, and
 >>>> list the names.
 >>>>
 >>>> For a small private phone book, either way, so what - big deal.  In a
 >>>> public database, there could conceivably be a large amount of network
 >>>> overhead processing the Mysql queries.  However, from the reading I
 >>>> have been doing, MySQL is very fast, PHP being interpreted, may end up
 >>>> being slower.
 >>>>
 >>>> So, anyone care to enlighten me?  I would love your thoughts,
 >>>> comments, experiences.
 >>>>
 >>>  I've added the crosspost because I believe this is an extremely good
 >>> question that doesn't get the attention it deserves.  You should get a
 >>> lot of opinions on this.
 >>>  Here's mine:
 >>>  One query to sql is better than 6 and it's certainly better than 27.
 >>> PHP could process the list quite quickly.   If your DB is on a
 >>> different server than your web site (good practice to keep your DB
 >>> behind a firewall>, then you're crossing your network up to 27 times
 >>> instead of just once.
 >>
 >> I would agree that this may work in this one situation, however, when
 >> those datasets get too large - with large numbers of request for that
 >> data, you can do more harm than good.
 >>
 >> I recently fixed some code that was causing over 400MB per request to be
 >> returned for processing - and literally crippled an IBM mainframe. to
 >> the point that once we shut off the web app - it took the frame more
 >> than 7 hours to catch up on it's batch processing. One of those - let's
 >> let the application process the data. Again, in a very small number of
 >> situations this  **may** be okay, in others, it can be crippling.
 >>
 >> Things to remember:
 >> 	1) KNOW YOUR DATA  - what it is and how much you have.
 >> 	2) KNOW YOUR "customer" - how many, how they might use the data.
 >> 	3) Your "customer" will ALWAYS use your application in ways you never
 >> dreamed of...
 >
 >4) Never ask for more data then you're really sure you're going to use.
 >The numerous times I've seen 'SELECT *' in production code...
 
 Right.  As I read her example, she planned on using the data, but
 parsing it out up to 27 ways.   (& btw, we all know how little it
 takes to bog an IBM mainframe) :)
 --
 gburnore at DataBasix dot Com
 ---------------------------------------------------------------------------
 How you look depends on where you go.
 ---------------------------------------------------------------------------
 Gary L. Burnore                       |  ÝÛ³ºÝ³Þ³ºÝ³³Ýۺݳ޳ºÝ³Ý³Þ³ºÝ³ÝÝÛ³
 |  ÝÛ³ºÝ³Þ³ºÝ³³Ýۺݳ޳ºÝ³Ý³Þ³ºÝ³ÝÝÛ³
 Official .sig, Accept no substitutes. |  ÝÛ³ºÝ³Þ³ºÝ³³Ýۺݳ޳ºÝ³Ý³Þ³ºÝ³ÝÝÛ³
 |  ÝÛ 0 1 7 2 3 / Ý³Þ 3 7 4 9 3 0 Û³
 Black Helicopter Repair Services, Ltd.|     Official Proof of Purchase
 ===========================================================================
  Navigation: [Reply to this message] |