phpMyAdmin 未显示所有行 - 显示的总记录数错误

2022-01-05 00:00:00 mysql phpmyadmin

我正在显示 phpMyAdmin v4.3.2 中的所有行 (825),用于按默认自动增量主键排序的 mysql innodb 表.当按升序排序时,我转到最后一页,但它在 id = 1150 处停止,而它应该是 id = 1337.不显示最后 200 条左右的记录.降序排序时,记录正确地从最后一条记录开始.

I'm showing all rows (825) in phpMyAdmin v4.3.2 for a mysql innodb table sorted by the default autoincrement primary key. When sorted ascending, I go to the last page but it stops at id = 1150 when it should be id = 1337. The last 200 or so records do not display. When sorted descending, the records correctly start at the last record.

奇怪的是,增加每页的行数会导致更多缺失的行,如果我将其设置为每页 250 行,它们都会存在.

Oddly, increasing the number of rows per page give more of the missing rows and if I set it to 250 rows per page, they will all be there.

任何想法为什么结果集被截断?似乎 phpMyAdmin 错误计算了页数.

Any ideas why the result set is truncated? It seems as if phpMyAdmin is miscalculating number of pages.

更新我升级到最新版本4.5.0.2,问题依旧.

UPDATE I upgraded to the latest version 4.5.0.2 and the problem persists.

更新2进入表时执行的查询是SELECT * FROM gems结果:显示第 0 - 24 行(总共 825 行,查询耗时 0.0000 秒.)

UPDATE2 The query executed when entering the table is SELECT * FROM gems The result: Showing rows 0 - 24 (825 total, Query took 0.0000 seconds.)

当我执行查询select count(*) from gems 时,结果返回 997.所以问题很明显出在 phpMyAdmin 认为存在的估计记录数上.

When I do the query select count(*) from gems the result returns 997. So the problem is clearly in the estimated number of records phpMyAdmin thinks is there.

推荐答案

我发现我的 phpMyAdmin 配置文件中有以下设置粘贴自谁知道我以前做过什么性能修复.

I found that I had the following setting in my phpMyAdmin config file pasted from who know what previous performance fix I made.

$cfg['MaxExactCount'] = 0

这导致无法纠正 InnoDB 估计.我注释掉了这一行,当然它解决了问题

This disabled correcting InnoDB estimates. I commented out this line, and of course it took care of the problem

相关文章