mysql - 由于执行 JOIN 查询,Mysql 连接丢失
问题描述
我写了以下查询,但由于 stock_prices 有大量行;mysql 抛出连接丢失错误:所以查询是正确的,但我们需要优化一个。
查询:
SELECT l.symbol, l.companyname, s.closing, s.change_price, s.stock_return, s.volume
FROM listed_companies as l, stock_prices as s
WHERE l.symbol = s.symbol AND DATE(s.stock_date) = (**SELECT max(`stock_date`) as MaxDate FROM stock_prices WHERE l.symbol = symbol**)
ORDER BY l.symbol
这里,stock_prices 有大量数据,并且对应于listed_companies 表的单行的多行单值。
突出显示的子查询会产生问题并花费大量执行时间。
建议任何备用查询。
解决方案
1.
SELECT l.symbol, l.companyname, s.closing, s.change_price, s.stock_return, s.volume
FROM listed_companies as l, stock_prices as s
WHERE l.symbol = s.symbol AND
ORDER BY l.symbol
2.
SELECT l.symbol, l.companyname, s.closing, s.change_price, s.stock_return, s.volume
FROM listed_companies as l, stock_prices as s
WHERE DATE(s.stock_date) = (**SELECT max(`stock_date`) as MaxDate FROM stock_prices WHERE l.symbol = symbol**)
ORDER BY l.symbol
尝试分别运行这两个查询。检查两者是否都按要求给出结果。如果是,那么数据库可能存在一些问题。先试试这个。
推荐阅读
- c# - 如何在.Net Core中多次注册相同的接口?
- django - Django:对象分页,在上下文列表中查看多个项目
- jenkins - rtDownload 在 Jenkins 流水线中
- python - ModuleNotFoundError:没有名为“_ctypes”Mac M1 的模块
- unit-testing - 为什么 Poco JWT 测试因核心转储而失败(WSL Ubuntu 20.04 上的 poco 1.11.0)
- github - Jenkins 使用两个 github 存储库构建
- javascript - 从两个不同的数组中返回具有最接近数字的数组
- python - 在 Python 中编辑字典列表中的值
- material-ui - 移除 Material UI 的默认值
- javascript - 如何使用 JavaScript 在 Elementor Pro 中动态初始化 Swiper.JS?