关于 MySQL 的索引合并的问题-问答-阿里云开发者社区-阿里云

开发者社区> 问答> 正文
阿里云
为了无法计算的价值
打开APP
阿里云APP内打开

关于 MySQL 的索引合并的问题

2016-02-11 17:21:35 2827 1

osc_answers 表的索引如下:
37
现在执行一个非常简单的查询语句:
SELECT COUNT(id) FROM osc_answers WHERE question = 78473 AND parent = 0
这个 SQL 语句居然要 100 多毫秒,EXPLAIN 看看居然是:
Using intersect(idx_answer_question,idx_answer_parent); Using where; Using index
这 MySQL 有点自作主张了吧??
关闭优化器开关:
SET optimizer_switch = 'index_merge_intersection=off'
再次执行上述 SQL 后,只需要几毫秒甚至是0,而 EXPLAIN 信息只有:
Using where
还有奇怪的问题是,本地和服务器上表结构和索引都一样的,本地就不会出现这种情况。

取消 提交回答
全部回答(1)
  • 落地花开啦
    2019-07-17 18:40:56

    四个列上都做索引是不太好的设计啊,
    “直接添加 question 和 parent 的复合索引”, 只能针对 WHERE question = 78473 AND parent = 0 这种情况
    我猜测是不是你的parent重复太多了(cardinality),这样使用了索引反而效率不高,因为大量的重复索引还得做一些额外的工作,针对你的查询我想是不是只在question 上建立一个索引就够了,你可以自己测试一下

    0 0
相关问答

1

回答

【RDS】RDS MySQL如何终止会话?

2022-01-12 16:17:02 470浏览量 回答数 1

1

回答

RDS MySQL如何终止会话?

2022-01-07 14:15:23 890浏览量 回答数 1

1

回答

php做阿里云的rds mysql的binlog监听,有人处理过吗?

2019-05-16 15:25:12 2850浏览量 回答数 1

1

回答

RDS 怎样调整mysql读取速度?

2018-12-16 16:50:53 696浏览量 回答数 1

1

回答

你们的RDS Mysql升级一次一般需要多长时间? 怎么我选的升级,升级了快1个小时了还没好?

2018-12-07 09:19:01 558浏览量 回答数 1

1

回答

RDS mysql实例运行参数设置问题

2018-12-06 09:16:12 725浏览量 回答数 1

1

回答

RDS MySQL单机版主备与读写分离问题

2018-12-06 13:43:05 642浏览量 回答数 1

3

回答

RDS MYSQL内网地址 VS XX.XX.XX.XX ip访问差别

2018-12-04 17:25:52 2098浏览量 回答数 3

0

回答

接近1T的数据存储在rds(mysql)如何复制一份到PolarDB

2018-11-29 15:07:53 518浏览量 回答数 0

1

回答

rds mysql 备份的数据太大 导致磁盘空间满 无法删除备份的数据

2018-11-23 12:48:08 1141浏览量 回答数 1
+关注
落地花开啦
喜欢技术,喜欢努力的人
0
文章
7824
问答
问答排行榜
最热
最新
相关电子书
更多
低代码开发师(初级)实战教程
立即下载
阿里巴巴DevOps 最佳实践手册
立即下载
冬季实战营第三期:MySQL数据库进阶实战
立即下载