mysql和oracle查询速度

mysql和oracle查询速度,第1张

MySQL的查询速度,一般可以分为表的大小和查询的模式:

(1)如果表很小,比如只有几百行数据,MySQL的查询速度基本上不受索引影响,可以很快地执行查询。

(2)如果表较大,可以通过使用索引和其他优化技术来大幅度提高MySQL的查询速度。

Oracle的查询速度,也可以分为查询的模式和表的大小:

(1)如果表相对较小,Oracle的查询速度可以通过建立索引和其他优化技术,大大提高查询的性能。此外,Oracle还可以使用特殊的结构,如索引组合,来提高查询的效率。

(2)如果表较大,Oracle也可以通过建立索引和其他优化技术来提高查询的性能。Oracle还支持多表查询和分布式查询,以加快查询速度。

1、除非迫不得已,不建议使用子查询,因为在几乎所有的sql语言中子查询都是效率很低的,并且mysql中的子查询在某些旧版本下面还有不少缺陷。

2、直接连接查询,使用的是笛卡尔积的查询模式。就是把X表中的每一行分别与Y表中的每一行组合一次,10W数据表X与30W数据表Y的笛卡尔积将会产生300W条数据。

3、X,Y直连、join、left join、right join、inner jion都属于直接连接查询,只不过在查询出的结果集中的数据选取方式有区别而已(有的时候也会因为这个区别而产生微量的效率不同)。

4、在你上面的两条语句中,只能用语句1。因为语句1使用了直连,笛卡尔积导致的300W的数据量的主键对等查询的速度上还是说得过去的。而语句2中使用了两个子查询,然后以两个子查询的结果集再做笛卡尔积,然后再在300W数据中做主键对等匹配出结果集,且查询出的结果只能是两个表各自的id,不是你想要的结果,并且你的on语句是错误的,会导致不可预知的结果。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/7538531.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-06
下一篇 2023-04-06

发表评论

登录后才能评论

评论列表(0条)

保存