我正在优化MySQL查询,但遇到了一个奇怪的问题。我从不使用实时生产数据库,因此我创建了一个转储,并使用mysqldump将其导入到本地计算机上的数据库中,没有额外的选项。
生产数据库上的mysql版本与我的本地虚拟机几乎完全相同:
生产: mysql 14.14远端5.1.61,用于debian gnu (x86_64),使用readline 6.2
虚拟机: mysql 14.14远端5.1.63,debian gnu (x86_64),使用readline6.2
这个查询非常复杂,在生产过程中需要4到5秒左右,但是在VM上所花费的时间不到1秒。我唯一能想到的是,生产数据库上可能有锁阻止查
我们在DB2中为每个客户提供了单独的数据库,但每个客户都有相同的表结构。对于.Net应用程序,我需要扫描所有数据库,并向用户显示匹配条目的结果。我想知道是对所有数据库执行UNION ALL,还是并行运行每个查询,然后从我的.Net应用程序中组合它们。
Select EmpName, EmpSal, EmpDate
from A.Emptable
where EmpDate > '2015-01-01'
UNION ALL
Select EmpName, EmpSal, EmpDate
from B.Emptable
where EmpDate > '2015