[EMAIL PROTECTED] wrote:
Sebastian <[EMAIL PROTECTED]> wrote on 08/08/2005 10:53:55 AM:


Gleb Paharenko wrote:


Hello.



What about this:



UPDATE news

SET comments =

(

SELECT COUNT(id)

FROM comments WHERE newsid = news.id
 GROUP BY newsid

);


Hi. i came up with a similar query last night, but i didnt use group by.
I have question, it it better to use COUNT(*) ? i thought there is extra


mysql optimization when you use *

thanks.


--
No virus found in this outgoing message.
Checked by AVG Anti-Virus.
Version: 7.0.338 / Virus Database: 267.10.2/65 - Release Date: 8/7/2005




IMHO, the better solution is to INCREMENT your comment count *as you add each comment* . There will be much less SQL processing involved and it keeps your database in a consistent state. Doing things your way, you accumulate "uncounted" comments and your count will be wrong for the period between whole table recounts. If you update your static "comment count" statistic every time you add or delete a comment, you won't run into this problem.

Plus, think of how often you would have to summarize (recount) your entire table just to register a few additions/deletions. How many processing cycles will you save by just setting the value to what it should be at the finish of the comment transaction? This is one of those time when a "dynamic" solution is too "heavy" for frequent use.
Shawn Green
Database Administrator
Unimin Corporation - Spruce Pine


It is not a bad idea to also DECREMENT the comment count each time a
comment is deleted (if you do it), but that doesn't occur very often.
This is implicit in your comment, but is not a bad idea to explicit it.

--
Nuno Pereira


--
MySQL General Mailing List
For list archives: http://lists.mysql.com/mysql
To unsubscribe:    http://lists.mysql.com/[EMAIL PROTECTED]

Reply via email to