mysql - query.reduce 性能缓慢

标签 mysql

我使用联接和内部查询编写查询,查询给了我正确的结果。但降低了查询的整体性能。

内部查询获取俱乐部发票中的最大invoiceId。

select sum(disp.noOfCases),inv.invoiceDate 
from outwardorderinvoiceenteryregistration inv join outwarddispatchenteryregistration disp on inv.outWardDispatchEnteryRegistrationId=disp.outWardDispatchEnteryRegistrationId 
join ( 
select max(outWardOrderInvoiceEnteryRegistrationId) as outWardOrderInvoiceEnteryRegistrationId  from outwardorderinvoiceenteryregistration  
group by outWardDispatchEnteryRegistrationId ) maxDateInvIdFrmMultiDispId on inv.outWardOrderInvoiceEnteryRegistrationId=maxDateInvIdFrmMultiDispId.outWardOrderInvoiceEnteryRegistrationId 
where inv.status=1 and inv.dispatchEnteryRegistrationStatus=1 and invoiceDate between :fromDate and :toDate group by inv.invoiceDate

如何转换此查询以提高性能。

最佳答案

在您的子查询中缺少列outWardOrderInvoiceEnteryRegistrationId(没有这个您的问题不应该工作)

select sum(disp.noOfCases)
    ,inv.invoiceDate 
from outwardorderinvoiceenteryregistration inv 
join outwarddispatchenteryregistration disp on inv.outWardDispatchEnteryRegistrationId=disp.outWardDispatchEnteryRegistrationId 
join ( 
    select outWardOrderInvoiceEnteryRegistrationId,
    max(outWardOrderInvoiceEnteryRegistrationId) as outWardOrderInvoiceEnteryRegistrationId  
    from outwardorderinvoiceenteryregistration  
    group by outWardDispatchEnteryRegistrationId 
) maxDateInvIdFrmMultiDispId on inv.outWardOrderInvoiceEnteryRegistrationId=maxDateInvIdFrmMultiDispId.outWardOrderInvoiceEnteryRegistrationId 
where inv.status=1 and inv.dispatchEnteryRegistrationStatus=1 
and inv.invoiceDate between :fromDate and :toDate 
group by inv.invoiceDate

为了性能,请确保您有正确的索引 在表上外发订单发票输入注册

上的综合索引
status, dispatchEnteryRegistrationStatus, invoiceDate, outWardDispatchEnteryRegistrationId 

关于mysql - query.reduce 性能缓慢,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57107027/

相关文章:

SQL - 如何找到列中的最高数字?

mysql从字段中删除前导零

日期字段上的 MySQL 索引

mysql - 在 Symfony2 中仅使用今天的日期和月份从 MySQL 数据库中检索记录

mysql - 错误: while trying to restart mysql

mysql - 无法访问xampp服务器中的phpmyadmin数据库

java - SQL Where子句日期跨度

php - SQL 选择用户

java - DataSource 和 ConnectionPoolDataSource 的区别

mysql - 我怎样才能让 MySQL 在 CoreOS 更新上持久存在?