一个sql语句在MySQL和Sql server有很大的性能差别

[复制链接]
查看11 | 回复4 | 2019-7-13 22:29:26 | 显示全部楼层 |阅读模式
我正在测试MySQL数据库,运行了一个sql语句
select * from tmp_mobile where mobile in (select mobile from tmp_mobile group by mobile having count(*)>1)
在Sql Server下面执行几乎不用等待,但在MySql下面就慢得不行,等了10多分钟没出来结果,只能关了服务器。
谁知道为什么性能相差这么多?
tmp_mobile中的数据大概9w多条。
回复

使用道具 举报

千问 | 2019-7-13 22:29:26 | 显示全部楼层
是在同一个硬件环境下吗?
回复

使用道具 举报

千问 | 2019-7-13 22:29:26 | 显示全部楼层
尽量使用关联查询来替换子查询。MYSQL中的子查询,特别是WHERE后面的子查询,效率相当低。换成关联查询,速度突飞猛进。
回复

使用道具 举报

千问 | 2019-7-13 22:29:26 | 显示全部楼层
最初由 gladness 发布
[B]尽量使用关联查询来替换子查询。MYSQL中的子查询,特别是WHERE后面的子查询,效率相当低。换成关联查询,速度突飞猛进。 [/B]

我公司会把现有的SQL Server的一些应用转到MySQL上,所有修改尽量要少,如果这么简单的sql都要修改那工作量就比较大了。
回复

使用道具 举报

千问 | 2019-7-13 22:29:26 | 显示全部楼层
MySQL对复杂的查询语句的优化看来还是和Oracle,SQL server有些差距。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行