在我的 MySQL 数据库中,我有两个表:“orders”和“orders_lines”。订单包含有关客户、订单日期等的信息。Orders_lines 包含有关订购产品的数据,例如 product_id、价格、数量、税率等。
我目前正在构建一个搜索页面,我想在其中返回包含特定产品的订单。例如,我想返回 product_id 为 2 的所有订单。我想到了这样的查询:
SELECT * FROM orders WHERE order_id IN ( SELECT order_id FROM orders_lines WHERE product_id = 2 )
但是当我今天早上执行查询时,我不得不打电话给托管服务提供商来终止 MySQL 进程,因为它太重了。从来没有听说过,也不知道为什么,我现在很绝望。orders 表包含大约 30.000 行,orders_lines 表包含大约 38.000 行。
欢迎任何关于我的数据库崩溃、如何更改查询以使其正常工作或如何实现显示包含特定产品的订单的目标的建议!
亲切的问候,
马汀