mysql - 当我们有复合索引时是否需要正常的 MySql 索引

标签 mysql sql

我们的 MySql 表有 2500 万行

下面是表格中的列

c_id,c_name,s_id,l_type,l_time,message,domain

在上面我们有 c_id,c_name,s_id,l_type,domain 列的普通索引

我计划在 domain、l_time、l_type 列上添加复合索引。那么现在我可以删除域上的单个索引吗?

谢谢

最佳答案

复合索引的任何前缀本身也将用作索引。因此,如果您在 (domain, log_time, log_type) 上有一个复合索引,则相当于在 domain(domain, log_time) 上有索引.也没有必要单独拥有这些索引,它们将是多余的并且浪费空间。

因此,当您添加此复合索引时,您可以安全地删除 domain 上的索引。

关于mysql - 当我们有复合索引时是否需要正常的 MySql 索引,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28630329/

相关文章:

php MySql QUERY for Friends 关系表帮助

php - PDO 查询在结果集中返回每个字段两次

php - 当他/她的 ID 在另一个文本框中输入时,如何在文本框中获取并显示学生的姓名

java - 如何记录我的项目上的 Activity

asp.net - 在SAAS架构中,如何处理 Multi-Tenancy 的数据库模式和MVC用户登录

php - 使用 STR_TO_DATE 时查询返回 NULL

sql - UNION 与 WHERE 子句

mysql - 将表与一对一关系组合起来

mysql - 搜索 Concat 字符串不起作用

sql - postgres空间索引