主鍵選擇我有大約650排,5 MB數據長度,60 KB的索引長度MEMORY表(因此它是相當小的)。它有一個SMALLINT主鍵(散列)和大約90個其他列(整數,變量,日期時間,無斑點或文本)。 (編輯:這裏還有一個BIGINT列的哈希鍵)。簡單恆定在小MEMORY表很慢
我運行此查詢(從PHP)經常(每秒約10次):
SELECT * FROM userek其中id = {} CONST_ID和kitiltva = 0和 kitiltva_meddig < 「{} CONST_DATETIME」 和inaktiv = 0
注:id
是主鍵。我需要*
,因爲結果被用在很多不同的地方,基本上所有的列都在這裏或那裏使用。
我的問題是:查詢得到異常緩慢的定期。關於0.5s
平均來說,8s
最大。大部分時間都非常快:75%
的運行速度比3ms
,85%
的運行速度要快。但15%
它比平均速度慢,13%
慢於1s
。所以它有一個長尾巴。
而且我也絕對不知道什麼可能導致它。任何想法的人?
表中沒有其他索引,PK除外? –
哦,在BIGINT列上還有另一個散列索引。而已。 – Cucu
'(id,kitiltva,inaktiv,kitiltva_meddig)'上的BTREE索引將是最適合此查詢的。但是我沒有使用MEMORY表,所以如果這個(添加索引)適合做這種情況,那麼有更多經驗的人可能會建議。 –