MySQL子查询真的很慢……解决方法?
发布时间:2020-12-30 18:12:27 所属栏目:MySql 来源:互联网
导读:我在MySQL 5.0,5.1,5.5上测试了以下看似简单的查询,发现它非常慢.select * from entry where session_id in (select session_id from entry where created_at [some timestamp]) 多个条目可以具有相同的会话ID,但具有不同的crea
我在MySQL 5.0,5.1,5.5上测试了以下看似简单的查询,发现它非常慢.
多个条目可以具有相同的会话ID,但具有不同的created_at时间戳. 我见过其他人谈到类似查询的MySQL子查询性能问题,并且MySQL认为子查询是一个依赖查询,它正在对外部查询进行全表扫描.建议的解决方法类似于:
但是,这个hack对我不起作用,使它更慢. 有关如何重写此查询的任何想法? 最佳答案 根据您的数据分布,使用此选项
(在(session_id,created_at))上创建索引,或者:
(在created_at和session_id上创建两个单独的索引) (编辑:4S站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- mysql – InnoDB相当于MyISAM的key_buffer_size是什么?
- MySql 中文写入数据库乱码及Incorrect string value: xF0x9
- php – Laravel查询生成器常规错误2031
- MySQL是否适合具有3.5米行的读取大量数据库?如果是这样,哪
- MySQL或Rails在特定日期范围内每天获得AVG的最佳方式
- 如何在MySQL中跳过空白数据?
- MySQL到SQLite转换器
- 将数据从实时MySQL数据库复制到登台服务器的策略
- mysql --The MEMORY Storage Engine--官方文档
- 远程Mysql服务器(AWS极光)上的Laravel权限被拒绝