假设我下面有数以百万计的记录查询
Select * from employee,department where employee.deptId=department.id我的问题是,甲骨文或MySQL会产生多个线程来处理上述单个查询吗?基本上分散单个任务,然后收集结果,还是会有一个用于单个进程/查询的线程?
发布于 2017-09-10 05:11:28
不是的。
MySQL不会将任何查询拆分为多个线程/进程。请注意,即使是UNION或PARTITION。
如果您有一个非常大的数据集,那么它可能并不重要--您可能是I/O绑定的,因此受到磁盘带宽的限制,而不是CPU。
您的特定查询不太可能运行,因为它将返回数百万条记录--瓶颈可能是网络和/或试图接收“数百万”记录的客户端。
发布于 2017-09-11 00:30:46
Oracle RDBMS企业版可能会这样做。并行处理是一个很大的课题。它主要用于datawarehouse或类似的情况,在这种情况下,有少数用户运行非常大的查询,而在OLTP中,有很多用户运行非常小的查询,而OLTP则不使用它。
请检查您的DB版本、许可证和该主题下的文档。
https://docs.oracle.com/cd/E11882_01/server.112/e 25523/平行002.htm
https://dba.stackexchange.com/questions/185519
复制相似问题