【发布时间】:2010-11-24 12:53:13
【问题描述】:
我有 2 张桌子
1) 带有字段的“产品”(产品 ID PK、名称、描述、价格)
2) 带有字段(salesid PK、salestime、productid、customername、customeremail、status)的“sales”
我需要将数据以表格格式显示为
SalesID 产品名称 金额 客户名称 客户地址 付款状态
为此,我使用以下查询
SELECT s.salesid, p.name, p.price, s.customername, s.customeremail, s.status
FROM sales s
LEFT JOIN products p ON s.productid = p.productid
ORDER BY salestime DESC
LIMIT 0, 15
有什么方法可以优化此查询以更快地运行?
【问题讨论】:
-
JOINs 和ORDER BYs 是您会看到速度变慢的地方,但是如果您更改了这些,您将无法按您想要的顺序取回您想要的数据。该查询对我来说看起来不错,但salestime和product_id列上的索引可能有助于加快速度。此外,您可以将此查询存储为视图或存储过程吗?调用 SQL 时,服务器需要编译 SQL 代码,然后执行它。当从视图或存储过程中调用它时,它会被服务器预编译,这可以节省更多的毫秒数..