我写了一个上传工具,用户可以上传需要在我们端处理的数千行。流程图如下:
读取PHP临时文件并构建多维嵌套数组
2.a纯数组数组[key] [key2] [key3] = row [](最多10个属性)
OR
2.b当前解决方案序列化数据数组[key] [key2] [key3] = json_encode(row [])
很少有笔记 我需要创建一个嵌套数组来通过块来查看数据,我无法查询我们的数据库150,000次。我按特定类别汇总上传的数据,然后查询数据库。
我已经尝试过使用带有空白嵌套数组的tmp文件。 此外,订购文件已被删除,因为它需要相同的处理量。
以下是具有150,000行数据的文件的内存测试。 我首先尝试将其全部加载到内存中。 然后我尝试以处理时间为代价来序列化它。
然后我尝试了HHVM。
/*
Line Number Memory In MB
mem usage at # 10000 - 103.6
*/
php memtest.php
mem usage 0.6
mem usage at # 0 - 0.7 //Memory used in MB get_memory_usage()
mem usage at # 10000 - 103.6
mem usage at # 20000 - 206.2
mem usage at # 30000 - 308.7
mem usage at # 40000 - 411.1
mem usage at # 50000 - 513.4
mem usage at # 60000 - 615.7
mem usage at # 70000 - 718.1
mem usage at # 80000 - 820.4
mem usage at # 90000 - 922.5
mem usage at # 100000 - 1024.6
mem usage at # 110000 - 1126.7
mem usage at # 120000 - 1228.7
mem usage at # 130000 - 1330.9
mem usage at # 140000 - 1434.1
mem usage at # 150000 - 1537.2
19.02784705162
serialize
mem usage 0.7
mem usage at # 0 - 0.7
mem usage at # 10000 - 8.3
mem usage at # 20000 - 15.8
mem usage at # 30000 - 23.2
mem usage at # 40000 - 30.5
mem usage at # 50000 - 37.7
mem usage at # 60000 - 44.8
mem usage at # 70000 - 51.9
mem usage at # 80000 - 59
mem usage at # 90000 - 65.9
mem usage at # 100000 - 73
mem usage at # 110000 - 80
mem usage at # 120000 - 87
mem usage at # 130000 - 94.1
mem usage at # 140000 - 101.9
mem usage at # 150000 - 109.7
24.386758089066
hhvm memtest.php
mem usage 2
mem usage at # 0 - 2
mem usage at # 10000 - 28
mem usage at # 20000 - 56
mem usage at # 30000 - 82
mem usage at # 40000 - 108
mem usage at # 50000 - 136
mem usage at # 60000 - 162
mem usage at # 70000 - 190
mem usage at # 80000 - 216
mem usage at # 90000 - 244
mem usage at # 100000 - 270
mem usage at # 110000 - 296
mem usage at # 120000 - 324
mem usage at # 130000 - 350
mem usage at # 140000 - 378
mem usage at # 150000 - 406
4.0886609554291
serialize
mem usage 422 (422-406=16m)
mem usage at # 0 - 422 // 16
mem usage at # 10000 - 430 // 28
mem usage at # 20000 - 438 // 36
mem usage at # 30000 - 446 // 44
mem usage at # 40000 - 452 // 50
mem usage at # 50000 - 460 // 58
mem usage at # 60000 - 468 // 66
mem usage at # 70000 - 476 // 74
mem usage at # 80000 - 484 // 82
mem usage at # 90000 - 492 // 90
mem usage at # 100000 - 498 // 96
mem usage at # 110000 - 506 // 104
mem usage at # 120000 - 514 // 112
mem usage at # 130000 - 522 // 120
mem usage at # 140000 - 530 // 128
mem usage at # 150000 - 538 // 136
14.125330924988
我的问题是在PHP中处理大型数据集的最佳方法是什么? 是否有更优化的方法将数据存储在变量中?