mysql - 如何使用 mysql 减少嵌套查询时间

标签 mysql sql

如何通过任何类型的联接、子查询或嵌套查询来减少此查询运行时间。

select 
`p`.`id`,
`p`.`name`,
SUM(s.quantity) as inst,
from `product` as `p` 
LEFT JOIN  sales as s ON s.pid=p.`id` AND s.sales_id IN (SELECT invoice.invoice_id FROM invoice WHERE invoice.ccid NOT IN (SELECT ccid FROM ticket WHERE st='1'))
where `p`.`hc` = '1' 
GROUP BY `p`.`id` 
order by `p`.`name` DESC 

最佳答案

为票据中的 st 添加索引,并为发票中的 ccid 和销售中的 sales_id 添加索引。

在查询 possible_keys 列输出中是否正在使用创建的索引之前,尝试使用说明子句。

关于mysql - 如何使用 mysql 减少嵌套查询时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37744381/

相关文章:

sql - ODBC不断提示输入密码

sql - Postgres 加入类

php - MySQL 日期变量和普通变量

mysql - 如何为以下条件创建架构?

php - 计算有多少客户有 1 项服务,有多少客户有 2 项服务

mysql - 在 DBMS 中运行的一系列 SQL/DML/DDL 命令和语法

mysql - 800万条记录查询性能

sql - 使用 Sequel,我可以创建带有 FROM 子句的 UPDATE 语句吗

sql - 将列的值分配给sql中的变量使用jinja模板语言

mysql - 将数据从一个 MySQL 表传输到另一个带参数的表