Bri*_*ian 0 mysql sql database-design data-modeling
我有一个包含3个字段的MySQL表:
我经常使用以下查询:
SELECT *
FROM Table
WHERE Location = '$Location'
AND Variable = '$Variable'
ORDER BY Location, Variable
Run Code Online (Sandbox Code Playgroud)
我的表中有超过一百万行,查询有点慢.如果我添加一个字段VariableLocation,即变量和位置组合,它会提高查询速度吗?我可以将查询更改为:
SELECT *
FROM Table
WHERE VariableLocation = '$Location$Variable'
ORDER BY VariableLocation
Run Code Online (Sandbox Code Playgroud)
我会为列添加覆盖索引,location并且variable:
ALTER TABLE
ADD INDEX (variable, location);
Run Code Online (Sandbox Code Playgroud)
......但如果变量和位置对是唯一的,它们应该是主键.
将列组合在一起可能会导致更多的悲伤而不是它的价值.例如,如果您需要通过location或variable仅提取记录,则必须对子查询中的值进行子串.