2016-05-13 86 views
1

我的數據庫規模在不斷增長,所以我決定添加索引(以前從未這樣做過)。所以我需要一些建議。例如MySQL - 索引,字段順序

SELECT field1, field2 

FROM mytable1 

WHERE account_id = :account_id and product_id = :product_id and version_name = :version_name 

SELECT field1, field2 

FROM mytable1 

WHERE version_name = :version_name and and product_id = :product_id and account_id = :account_id 

一個帳戶可以有很多產品和產品可以有上百萬的版本,這select爲了在where更快。 version_name是一個字符串。

如果我有version_id可用,這是主鍵,我應該總是把它放在第一位。

我應該在ACCOUNT_ID添加索引和PRODUCT_ID一起

是否得到所有行的第一個條件where,然後過濾結果爲每秒條件等

它掃描所有三個字段的每一行,因爲沒有索引被添加

回答

1

從句的順序並不重要。重要的是索引中的字段順序:如果您有一個索引號爲012,,0.,那麼只有當您在WHERE子句account_id中時纔會使用該索引。

對於你的查詢,你可以把一個索引account_id,product_idversion_name