0

我在调试我的 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_dateINT (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_idsite_date索引,但这并没有解决任何问题。此外,如果我不订购site_date,而是site_id它总是很快,所以site_date似乎是这里的问题。

4

1 回答 1

1

在两列上添加新索引,并且site_isp_id按此顺序,应该会有所帮助。site_date

于 2013-11-13T17:40:15.493 回答