多个where子句需要多个索引吗?

说我有一个类似以下的查询:

SELECT * FROM users WHERE username = 'test' AND somethingelse = 'test'

我想知道是否有必要对两个列都进行索引以进行优化. MySQL是否首先找到所有带有’test’值的用户名列,然后在这些结果中搜索带有’test’的其他列?还是同时发生?

解决方法:

是的你应该.出现在WHERE子句中的每个列和列的组合都应具有索引以进行有效搜索.

您无需在主键字段中使用它,因为通过声明为主键为它们创建了索引.其他列要求您对其进行索引.

因此,您将拥有一个用于用户名和其他内容列的索引.

如果用户名必须唯一,则它可能具有自己的索引.

上一篇:MySQL自动增量自定义值


下一篇:通过编码在C#.Net中自动生成索引