在使用navicat進行數據庫管理的時候,在查看表對象的時候會發現,每次刷新,數據表的記錄數不斷變化,尤其是大表。
對於100萬的數據經常會顯示九十幾萬,當然通過count(*)出來的數據是正確的。
非常疑惑,查了一下資料,原來和存儲引擎有關。官方說明:
The number of rows. Some storage engines, such as MyISAM, store the exact count. For other storage engines, such as InnoDB, this value is an approximation, and may vary from the actual value by as much as 40 to 50%. In such cases, use SELECT COUNT(*) to obtain an accurate count.
在myisam這種不支持事務的引擎中,這個值是精確的,在innodb這種支持事務的引擎中,是估算的。
https://dev.mysql.com/doc/refman/5.1/en/show-table-status.html
navicat for mysql ,默認查看表是顯示前1000條。工具=》選項=》數據&網格=》限制記錄,這裡可以修改默認值。要沒這個限制的話,上千萬條,直接就把你卡死在那了。。
表打開之後看到的是數據列表,沒法看字段的類型。要查看表中每個字段的類型,選擇表之後,上面有個“設計表”,點擊之後就看到所有字段的類型了。