【发布时间】:2015-02-20 13:39:15
【问题描述】:
我们的 MySql 表有 2500 万行
以下是表格中的列
c_id,c_name,s_id,l_type,l_time,message,domain
其中我们在 c_id,c_name,s_id,l_type,domain 列上有正常的索引
我打算在域、l_time、l_type 列上添加复合索引。那么现在我可以删除域上的单个索引了吗?
谢谢
【问题讨论】:
我们的 MySql 表有 2500 万行
以下是表格中的列
c_id,c_name,s_id,l_type,l_time,message,domain
其中我们在 c_id,c_name,s_id,l_type,domain 列上有正常的索引
我打算在域、l_time、l_type 列上添加复合索引。那么现在我可以删除域上的单个索引了吗?
谢谢
【问题讨论】:
复合索引的任何前缀本身也将用作索引。所以如果你在(domain, log_time, log_type) 上有一个复合索引,它就相当于在domain 和(domain, log_time) 上有一个索引。也没有必要将这些索引分开,它们将是多余的并且浪费空间。
因此,当您添加此复合索引时,您可以安全地删除 domain 上的索引。
【讨论】:
为添加复合索引删除单个索引不是强制性的,根据要求,您可以保留或删除它/它们。
【讨论】: