我在调试我的 innodb 表时遇到问题。
我有一台非常强大的机器,32 核氙气设置,72gb 内存,8 个 sas 驱动器 raid 10。硬件不是问题 :) 整个 db 也加载到 innodb 缓冲池中。一般来说,在这台机器上我所有的数据库上,一切都快如闪电。
我的问题:
我有一张大约有 600 万行的表。
site_id, site_domain, site_date, site_ip, etc etc
我已经为 site_id、site_domain、site_date 和其他一些列添加了索引。所有索引截图
site_date
是INT (11)
我存储时间戳的列。很基础的东西。
我遇到的问题是当我运行一个简单的查询以获得一些结果并使用ORDER BY site_date DESC
.
site_date 列以某种方式让它变得超级慢,但只有一些 ID,这让我很困惑。
Example: (7812 being a slow ID here)
SELECT site_domain
FROM sites
WHERE site_isp_id = '7812'
ORDER BY site_date DESC
LIMIT 10
Results: (95524 total, Query took 1.7469 sec)
Example: (7811 being a fast ID here)
SELECT site_domain
FROM sites
WHERE site_isp_id = '7811'
ORDER BY site_date DESC
LIMIT 10
Results: (97599 total, Query took 0.0015 sec)
如您所见,由于某些奇怪的原因,使用某些 ID 变得非常慢,而且在我看来,它没有正确使用索引。我试图删除并重新添加site_isp_id
和site_date
索引,但这并没有解决任何问题。此外,如果我不订购site_date
,而是site_id
它总是很快,所以site_date
似乎是这里的问题。