2010-10-07 110 views
1

IHello中,查詢來計算記錄的確切數目的所有表

我想計數的每個表在我的MySQL數據庫多少記錄有它。

我所有的表恰巧在InnoDB和此查詢

SELECT TABLE_ROWS FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_SCHEMA = 'myschema'; 

辦法太多太多的估計(有846個記錄,它告訴我,只有+ - 400)

有沒有一種方法可以計算更多的確切數字與行相似的查詢?無論查詢需要多長時間,這都無關緊要。 (PS不使用PHP或類似的語言)

回答

1

如果查詢的長度不那麼無論什麼這樣做的每個表下面在數據庫:

select Count(*) from MyTable 
0

如果你打算使用系統視圖,那麼您需要確保更新數據庫統計信息,或者在系統模式視圖(如information_schema.x)中行的計數可能不正確。

使用

select count(*) yourtable; 

如回答說上面得到確切的數字

Analyze table yourtable; 

更新statisitcs然後檢查計數系統視圖下,他們應該匹配在部份點行數。

看到這個網站了解更多的細節和方式,爲您的整個數據庫做到這一點:

MySQL reference manual

0

,張貼在該Answer

create table #rowcount (tablename varchar(128), rowcnt int) 
exec sp_MSforeachtable 
    'insert into #rowcount select ''?'', count(*) from ?' 
select * from #rowcount 
    order by tablename 
drop table #rowcount 
相關問題