gpt4 book ai didi

mysql - 这个 mysql 查询有什么问题? (Whmc)

转载 作者:行者123 更新时间:2023-11-29 10:19:11 25 4
gpt4 key购买 nike

此查询在 php 应用程序中加载需要很长时间。事实上,它根本没有加载。
tblinvoices 大约有 17k 个条目。

SELECT * 
FROM `tblinvoices`
WHERE NOT EXISTS (
SELECT *
FROM `tblinvoiceitems`
WHERE `tblinvoiceitems`.`invoiceid` = `tblinvoices`.`id`
AND `type` IN ( 'Invoice' )
) AND `status` = 'Unpaid'
AND `userid` = '19830'

我可以在服务器端(Mysql 配置)做些什么来使这个查询运行得更快吗?

期待您的想法

最佳答案

这是一个很难回答的问题,因为有很多变量(您提到了 PHP),而且我们不知道您正在运行的服务器实例的大小,更不用说其他服务等了。

17k 是不运行的极少数记录,但您会遇到很多瓶颈。

第一步是将 PHP 从等式中删除。只需在 MySQL CLI 中尝试即可。

您是否尝试过在具有较小数据集的测试数据库上运行相同的查询?

由于您的应用程序已编码,因此很难标准化您的数据库,但您仍然可以对查询运行 EXPLAIN,并且只要您有权访问数据库,您就可以根据需要添加和删除索引。

尝试添加以下索引...

CREATE INDEX idx_invoices_user_status ON tblinvoices(status,userid);

还有...

CREATE INDEX idx_invoiceitems_invoiceid_type ON tblinvoiceitems(invoiceid,type);

如果索引是问题所在,我会感到惊讶,但值得一试......

关于mysql - 这个 mysql 查询有什么问题? (Whmc),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49639501/

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