gpt4 book ai didi

mysql - 查询在mysql中花费了很多时间,但在oracle中却没有

转载 作者:行者123 更新时间:2023-11-30 00:52:24 25 4
gpt4 key购买 nike

为什么下面的查询在 mysql 中花费这么多时间而在 oracle 中却不需要

select * from (select * from employee) as a limit 1000

我在 Oracle 和 MySQL 数据库中测试了此查询,该表中有 50,00,000 条记录。

我知道这些查询应该这样写

select * from employee limit 1000

但是,为了向自定义动态网格显示数据和总行数,我们只有一个查询,我们使用简单的 select * from employee 查询,然后添加限制或其他条件。

我们简化了这个问题。

但我的问题是“为什么 mysql 中的此类查询需要太多时间?”

最佳答案

因为要执行此查询,MySQL 必须遍历表中的所有 50K 行,将它们复制到临时表(在内存中或磁盘上,具体取决于大小),然后获取前 1000 行。

在 MySQL 中,如果您想使用 LIMIT 优化查询,则需要遵循一些防止扫描完整数据集(主要是排序所依据的列上的索引)的做法。

请参见此处:http://dev.mysql.com/doc/refman/5.0/en/limit-optimization.html

关于mysql - 查询在mysql中花费了很多时间,但在oracle中却没有,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20854973/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com