我正在处理一系列制造流程,并尝试创建一个基本的自动调度程序。重点是从我们系统所在的 DB2 服务器收集需求。
在以前的版本中,我根据天单独查询每个部分的订单,然后将这些天转换为星期一,以按周对订单进行分组,然后将需求向下传播到组件中,最后将所有这些存储在特定的 Excel 中给定资源的文件。
在最新的版本中,我建立了一个包含 Material list 信息的数据库,并立即查询所有这些订单,为不同类型的流程构建原始数据文件,并获取每个流程的时间表我正在解析这些原始文件并为时间表构建特定的 Excel 文件。
我的问题是:限制查询或限制 Excel 查找是否更有效?我已经研究了其他 PHPExcel 效率问题,并发现了一些可以改进的更改,并且还对 MySQL 查询做了相同的操作,但总的来说,什么是更有效的方法来完成我正在查看的任务? (作为补充说明,我运行 MySQL 数据库的服务器有足够的 RAM 来存储整个数据库,我知道这会提高速度,但我不确定这是否应该是一个决定因素,因为这一事实可能最终改变)
最佳答案
MySQL 非常擅长优化查询。您需要的是正确的索引。对索引进行 SQL 查询肯定比使用 PHPExcel(或任何其他库)解析数据更快。
如果您的数据集很大,对于 PHPExcel 来说尤其如此:PHPExcel 需要大量内存,因此您可能会遇到“内存不足”问题。您可以通过缓存数据来解决此问题,但这会严重影响整体性能。
所以我的建议是确保你的表索引正确,从 MySQL 获取你需要的数据,并避免在你的应用程序中过滤这些数据。这种模式适用于绝大多数用例并且扩展性良好。
关于php - 效率: PhpExcel look up vs mysql server query,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28324186/