Mysql"select*from"不返回所有行

Mai*_*nes 8 mysql sql select rows count

我已经习惯了PostgreSQL,并且不了解MySQL上的这种行为.

该表(来自SugarCRM)有3057行:

mysql> SELECT  count(*) FROM tasks ;
+----------+
| count(*) |
+----------+
|     3057 |
+----------+
Run Code Online (Sandbox Code Playgroud)

但是在跑步时SELECT * FROM tasks:

mysql> SELECT * FROM tasks ;
...
2344 rows in set (0,02 sec)
Run Code Online (Sandbox Code Playgroud)

我使用的是相当旧的MySQL版本,但问题是我只是试图转储数据库并恢复到新版本.

# mysql --version
mysql  Ver 14.14 Distrib 5.1.51, for slackware-linux-gnu (x86_64) using  EditLine wrapper
Run Code Online (Sandbox Code Playgroud)

你有什么想法?

Vik*_*kas 5

一般来说,MyISAM 表格式非常可靠,但表有时可能会因各种原因而损坏,例如硬件故障、写入操作正在进行时 mysqld 进程被终止、不合时宜的关闭或 MySQL 或 MyISAM 代码中的错误。如果您使用的是非常旧的版本,则可能会出现错误。

修复前建议您先备份。修复

REPAIR [NO_WRITE_TO_BINLOG | LOCAL] TABLE
tbl_name [, tbl_name] ...
[QUICK] [EXTENDED] [USE_FRM]
Run Code Online (Sandbox Code Playgroud)