我想知道在 mySQL 表中布置数据的最佳格式,以便可以以最快的方式查询它以收集一组每日值以供 php 进一步使用。
到目前为止,我已经这样布置了表格:
item_id price_date price_amount
1 2000-03-01 22.4
2 2000-03-01 19.23
3 2000-03-01 13.4
4 2000-03-01 14.95
1 2000-03-02 22.5
2 2000-03-02 19.42
3 2000-03-02 13.4
4 2000-03-02 13.95
将 item_id 定义为索引。
另外,我正在使用:
"SELECT DISTINCT price_date FROM table_name"
获取包含唯一日期列表的数组。
此外,循环内的代码部分(以及我的优化问题的重点)当前编写为:
"SELECT price_amount FROM table_name WHERE item_id = 1 ORDER BY price_date"
这第二个“SELECT”语句实际上是在一个循环中,我在其中选择/存储数组中请求的每个 item_id 的每日价格。
所有当前都在正常运行并从 mySQL 中正确提取数据,但是,上面列出的“SELECT”语句每次运行大约需要 4-5 秒才能完成,并且在循环 100 多个产品以创建摘要时,加起来一个非常低效/缓慢的信息系统。
有没有更有效的方法可以构建 mySQL 表和/或 SELECT 语句以更快地检索结果?也许在不同的列上定义不同的索引?我已使用 EXPLAIN 命令返回每个查询的信息,但不确定如何使用 EXPLAIN 信息来提高查询效率。
提前感谢任何可以提供帮助的 mySQL 向导。