我有非常简单的 mysql 表,有 5 列,但有 500 万条数据。早些时候,当数据较少时,我的服务器负载非常少,但现在负载正在增加,因为数据超过 500 万,我预计到今年年底将达到 1000 万,因此服务器会更慢。我明智地使用了索引
结构非常简单,id 作为自动增量和主键,我仅根据 id 过滤数据,因为它是主键,所以会自动索引(我也尝试过索引它,但没有好处)
表A
id pid title app get
我的查询是
EXPLAIN SELECT * FROM tableA ORDER BY id DESC LIMIT 4061280 , 10
并解释说
id select_type table type possible_keys key key_len ref rows Extra
1 SIMPLE tableA ALL NULL NULL NULL NULL 4700461 Using filesort
我不想遍历所有行,因为它会减慢我的服务器并为文件排序创建繁重的负载,因为它会在缓冲区或磁盘中创建临时文件。
请提出任何解决此问题的好主意。
当我的 id 被索引时,为什么它会遍历所有行并到达所需的行。它不能直接跳转到该行????