我正在处理一系列制造流程并尝试创建一个基本的自动调度程序。这侧重于从我们的系统所在的DB2服务器收集需求。
在之前的版本中,我根据天数自行查询每个零件的订单,然后将这些日子转换为星期一,将订单按周分组,然后通过组件向下传播需求,最后将所有这些内容存储在特定的Excel中给定资源的文件。
在最新的版本中,我建立了一个包含物料清单信息的数据库,我立即查询所有这些订单,为不同类型的流程构建原始数据文件,并为每个流程获取计划组件我正在解析这些原始文件并为日程表构建特定的Excel文件。
我的问题是:限制查询或限制excel查找是否更有效?我已经做了一些关于其他PHPExcel效率问题的研究,并发现了一些改进,并且也对MySQL查询做了同样的事情,但总的来说,什么是更有效的方式来做我正在看的东西? (另外请注意,我正在运行我的MySQL数据库的服务器有足够的RAM来存储整个数据库,我知道这会增加速度,但我不确定这是否应该是一个决定因素,因为这个事实可能最终改变)
答案 0 :(得分:1)
MySQL非常擅长优化查询。你需要的是正确的索引。在索引上进行SQL查询肯定比使用PHPExcel(或任何其他库)解析数据更快。
如果您的数据集很大,对PHPExcel尤其如此:PHPExcel需要大量内存,因此您可能会遇到“内存不足”的问题。问题。您可以通过缓存数据来解决此问题,但这会严重影响整体性能。
所以我的建议是确保你的表被正确编入索引,从MySQL获取所需的数据并避免在你的应用程序中过滤这些数据。这种模式适用于绝大多数用例并且可以很好地扩展。