【问题标题】:mysql php cpu abusemysql php cpu滥用
【发布时间】:2013-03-08 03:05:45
【问题描述】:

我有一个与 mysql 数据库共享计划的站点。该数据库有一个大约 300000 行的表。该表约为 250mb。在我调用查询的每一页中:

select * from table order by added limit 0,30

每一行都有我需要的 400 个字符代码的字段。基本上我需要所有领域。 直到几天前,一切都还好,但是每天有 500 名访客,速度很慢。现在我的网站关闭了,因为我收到了关于 cpu 滥用的警报(每天有 1000 名访问者)。在我的本地服务器中,一切都非常顺利,没有很大的 cpu 使用率 (~10%)。

我可以做些什么来使我的查询获得最佳性能?

如果我使用 VPS 计划,一切都会好起来的,或者真正的问题是我的桌子?

【问题讨论】:

    标签: mysql cpu vps abuse


    【解决方案1】:

    “已添加”字段是否已编入索引?如果表没有被 ORDER BY 中的字段索引,MySQL 将每次扫描整个表。通过索引你的表

    ALTER TABLE `table_name` ADD INDEX `added` (`added`);
    

    您将大大减少 CPU 使用率。

    【讨论】:

    • 是的。添加被索引。该表也是 myisam,我使用 pdo 执行查询。
    • 我在本地服务器和主机服务器上运行解释,我玩得很开心。
    猜你喜欢
    • 2020-08-25
    • 2023-04-10
    • 2016-09-16
    • 1970-01-01
    • 1970-01-01
    • 2012-10-12
    • 1970-01-01
    • 1970-01-01
    • 2021-02-10
    相关资源
    最近更新 更多