【发布时间】:2012-10-15 19:08:23
【问题描述】:
我在优化 MySQL 查询时遇到问题,但到目前为止,提取限制为 500 条记录的简单结果需要很长时间。
我的查询是这样的:
SELECT ou.*, gr.accepted, gr.value
FROM offer_usermeta ou
LEFT JOIN gateway_requests AS gr ON ou.customer_id = gr.customer_id
WHERE ou.customer_id != ""
AND ou.created >= '2012-10-08 00:00:00'
AND ou.created <= '2012-10-08 23:59:59'
ORDER BY ou.created DESC LIMIT 500
此查询需要一分钟来迭代可能超过 40,000 条记录。我需要它根据客户 ID 提取网关响应(如果有),并且此查询的数据看起来正确,但我需要优化提示。我正在考虑单独提取数据并在必要时将它们组合在一起,但我知道这可能会慢得多......
有什么建议吗? (如果有人知道其中的花哨技巧,我正在使用 codeigniter)
【问题讨论】:
-
请发布您的表格结构。
标签: php mysql codeigniter indexing