【问题标题】:MySQL query sometimes fast, often slowMySQL 查询有时很快,有时很慢
【发布时间】:2021-01-04 18:24:48
【问题描述】:

我在执行 MySQL 查询时遇到问题,有时需要几秒钟,有时需要 30 秒钟。我试图确定是查询问题还是共享服务器上的问题。

一些背景:表大约有 200 万行,每个包含用户数据的字段都被加密(客户要求)。由于字段是加密的,我不能做任何索引。这是一个通常需要 3-6 秒,有时需要 30 秒的查询。

 $sth5 = $dbh->prepare("SELECT activityType, startDate, startTime, duration, quality, type, endTime, activityNum, activityClass FROM ActivityX WHERE user=? AND activityType=? ORDER BY activityNum DESC");

在某些情况下,我尝试限制要在数据库中搜索的行,只有当我可以将行限制为 20,000-40,000 左右时才会有所帮助。 (我经常需要搜索完整的数据库才能找到答案。)

 $sth5 = $dbh->prepare("SELECT activityType, startDate, startTime, duration, quality, type, endTime, activityNum, activityClass FROM (SELECT * FROM ActivityX ORDER BY activityNum DESC LIMIT $rowBack) s WHERE user=? AND activityType=?");

我能做些什么来加快查询速度并使其更加可靠快速?

我将在不久的将来转向 VPS,这可能会解决问题,但我不想依赖它。

谢谢,

  • 乔恩

【问题讨论】:

    标签: mysql sql perl


    【解决方案1】:

    确保您有一个关于(用户、活动类型、活动编号)的索引。 我不确定您所说的可索引加密数据是什么意思,大多数普通加密类型通常不是这种情况。

    除此之外,听起来你有一个很大的嘈杂邻居问题。

    【讨论】:

      【解决方案2】:

      看这里。 How do you get server CPU usage and RAM usage with php?.

      也应该致力于共享。我在 Instant Cms 中看到过这样的指标。

      您还可以在此处找到一些有用的提示。 https://severalnines.com/database-blog/how-identify-mysql-performance-issues-slow-queries

      【讨论】:

        猜你喜欢
        • 2015-06-16
        • 2020-06-29
        • 1970-01-01
        • 2011-06-27
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-02-19
        • 2022-11-18
        相关资源
        最近更新 更多