簡體   English   中英

MySQL查詢有時快,經常慢

[英]MySQL query sometimes fast, often slow

我在使用 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,這可能會解決問題,但我不想依賴它。

謝謝,

  • 喬恩

確保您有(用戶、活動類型、活動編號)的索引。 我不確定您所說的可索引加密數據是什么意思,大多數普通加密類型通常不是這種情況。

除此之外,聽起來你有一個巨大的嘈雜鄰居問題。

進來看看 如何使用 php 獲取服務器 CPU 使用率和 RAM 使用率? .

也應該致力於共享。 我在 Instant Cms 中看到過這樣的指標。

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM