【发布时间】:2014-09-02 05:26:31
【问题描述】:
我习惯了 PostgreSQL,不理解 MySQL 上的这种行为。
此表(来自 SugarCRM)有 3057 行:
mysql> SELECT count(*) FROM tasks ;
+----------+
| count(*) |
+----------+
| 3057 |
+----------+
但是在运行SELECT * FROM tasks时:
mysql> SELECT * FROM tasks ;
...
2344 rows in set (0,02 sec)
我使用的是相当旧的 MySQL 版本,但问题是我只是想转储数据库并恢复到新版本。
# mysql --version
mysql Ver 14.14 Distrib 5.1.51, for slackware-linux-gnu (x86_64) using EditLine wrapper
你有什么想法吗?
【问题讨论】:
-
如果你尝试
SELECT * FROM tasks LIMIT 4000;会发生什么? -
相同结果:
2344 rows in set (0,02 sec) -
你的桌子是MYISAM吗?因为这篇文章我问:mysqlperformanceblog.com/2007/04/10/count-vs-countcol
-
如果是 MyISAM 表,请尝试运行
REPAIR TABLE tbl_name。 -
谢谢@Vatev,REPAIR TABLE 解决了这个问题!
标签: mysql sql select count rows