2016-05-13 67 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