mysql给已经存在的表添加索引_mysql – 如果该字段上的多列索引已存在,是否需要向表中添加新的单列索引?...

我在_job_id__和__keyword_id__上有一个带有多列UNIQUE索引的表.

如果我有频繁的查询在该列上执行GROUP BY,是否还需要向__job_id__添加另一个索引?

(1亿行可能需要一段时间.这就是为什么我要求而不只是做)

解决方法:

一点都不 !!!如果所需的主列在索引中最左边,MySQL Query Optimizer将做正确的事情.如果您确实创建了这样的索引,那么如果您始终执行GROUP BY job_id,keyword_id,则MySQL查询优化器可能选择永远不会使用该索引.如果您只通过job_id收集记录,MySQL Query Optimizer可能会也可能不会使用索引,但是无论如何您都有冗余索引浪费空间.

如果该表是MyISAM,那么制作这样的索引只会使MYI文件膨胀.

如果表是InnoDB且innodb_file_per_table为0,那么制作这样的索引只会使ibdata1膨胀.

如果表是InnoDB且innodb_file_per_table为1,那么创建这样的索引只会使表的.ibd文件膨胀.

总之,您不需要制作额外的索引!

标签:mysql,index

来源: https://codeday.me/bug/20190805/1589236.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值