I have good news and bad news for you when it comes to MySQL 5.x.

Good News if you are counting against MyISAM
Bad News if you are counting against InnoDB

Good News
---------
For MyISAM
Just use either
SELECT table_rows FROM information_schema.tables WHERE table_schema='<given db 
name>' and table_name='<given table name>';
Or
SELECT COUNT(1) FROM <db-name>.<tbl-name>; (This will work in MySQL 4.x as well)

Bad News
--------
For InnoDB
SELECT COUNT(1) FROM <db-name>.<tbl-name>, even though it can run faster than 
SELECT COUNT(*),
will still count every row in the table anyway.

If you are using InnoDB, you are on your own !!!!
If you are using MyISAM, have fun !!!!

Rolando A. Edwards
MySQL DBA (CMDBA)

155 Avenue of the Americas, Fifth Floor
New York, NY 10013
212-625-5307 (Work)
201-660-3221 (Cell)
AIM & Skype : RolandoLogicWorx
redwa...@logicworks.net

-----Original Message-----
From: BS TLC [mailto:bs...@ymail.com] 
Sent: Wednesday, August 05, 2009 10:30 AM
To: mysql@lists.mysql.com
Subject: How to Detect MySql table update/difference


Hi, I'm a novel developer of MySql and now I am trying to create a mysql query 
to detect table updates.

I query a database table every X seconds, and i want to get only the different 
rows in the table. The result that I want to have is simply
TABLE (t = now) - TABLE (t = X second ago)

Every time that i query the database I store the table situation in another 
table, called TABLE_TEMP, so the operation of difference detection is 
TABLE_DIFERENCE  = TABLE - TABLE_TEMP.

How can I do this query? The problem that I have is that I don't know the 
structure of the table and I want to create a program with can be used for all 
types of data and tables.

Please help me.

Best regards


      

-- 
MySQL General Mailing List
For list archives: http://lists.mysql.com/mysql
To unsubscribe:    http://lists.mysql.com/mysql?unsub=redwa...@logicworks.net

Reply via email to