[development] [Drupal7] Efficient to query nodes from multiple terms (CCK)
Larry Garfield
larry at garfieldtech.com
Sun Feb 27 19:31:48 UTC 2011
Also, subqueries in MySQL are slow only in the WHERE or HAVING clauses,
because they run once for each possible record. That is only sometimes a
problem in practice. In a FROM clause, however, they're perfectly fine and
can be a very good way to "pre filter" a table, as they will only run once.
--Larry Garfield
On Sunday, February 27, 2011 1:19:22 pm nan wich wrote:
> An important thing to remember is that what looks complex to you is not
> necessarily complex to the database. Many people are scared to death of
> JOINs because they think that makes the statement complex, while, in
> reality, they often make the statement simpler to the database. Just make
> sure you (the coder) know the difference between INNER and LEFT JOINs.
>
> And some times, a subquery is the only way to get accurate results. For
> example, getting a count of matching items from one table based on a
> selection from another is generally going to give you erroneous (and much
> slower) results without a subquery.
>
> And I echo the "test more than one solution" sentiment. I usually will pop
> over to PhpMyAdmin and test a query first to make sure it gives me what I
> expect. There I can also break out subqueries (and JOINs) to see if they
> give me what I expect. This is much better than the customer coming back
> and saying, "Are you sure this screen is right?"
>
> Nancy
>
> Injustice anywhere is a threat to justice everywhere. -- Dr. Martin L.
> King, Jr.
>
>
>
> ________________________________
>
> From: Pierre Rineau
> The only suggestion I would give you is don't be afraid of complex SQL
> queries, the only important thing is to always use direct (join|where|
> etc) conditions over indexed fields.
>
> Sometime subqueries can speedup a complex query, not always, test more
> than one solution using EXPLAIN
More information about the development
mailing list