我的数据库越来越大,所以我决定添加索引(以前从来没有这样做过)。所以我需要一些建议。例如:
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中的第一个条件获取所有行,然后将结果过滤为每秒条件,以此类推。
或
在不添加索引的情况下,它将扫描所有三个字段的每一行。
发布于 2016-05-13 16:42:40
从句的顺序并不重要。重要的是索引中字段的顺序:如果在1.account_id,2.product_id上有索引,则只有在WHERE子句account_id中有索引时才会使用该索引。
对于查询,您可以在account_id、product_id和version_name上添加索引。
https://stackoverflow.com/questions/37215221
复制相似问题