我意识到,在为用于“ORDER BY”的列创建索引时,对 MySQL 查询的响应会变得更快,例如
SELECT username FROM table ORDER BY registration_date DESC
现在我想知道我应该创建哪些索引来优化请求时间。例如,我经常使用以下查询:
SELECT username FROM table WHERE
registration_date > ".(time() - 10000)."
SELECT username FROM table WHERE
registration_date > ".(time() - 10000)."
&& status='active'
SELECT username FROM table WHERE
status='active'
SELECT username FROM table ORDER BY registration_date DESC
SELECT username FROM table WHERE
registration_date > ".(time() - 10000)."
&& status='active'
ORDER BY birth_date DESC
问题 1: 我应该为前三种请求类型设置单独的索引吗?(即“registration_date”列的一个索引,“status”列的一个索引,以及两者组合的另一个列?)
问题 2: “WHERE”和“ORDER BY”是否独立使用不同的索引?比如说,我有一个“status”和“registration_date”列的组合索引,还有一个“birth_date”列的索引。我应该为三列(“status”、“registration_date”和“birth_date”)设置另一个组合索引吗?