如何解决提高数据库查询性能和内存使用,列出所有数据 laravel
我有一个 dictionaries
这样的 csv 文件(大约 1000 行):
规则如下:
- 载体是唯一的,一个
carrier
可以有多个dom_int
(一对多) - 每个
dom_int
可以有多个group
,一个group
可以有多个dom_int
(多对多) - 每个
group
可以有多个route
(路线是唯一的)并且一个route
属于group
(一对多) - 每个
route
可以有多个sector
(只有2个),一个扇区属于一个route
(一对多)
它看起来像这样:
{
"VJ": {
"Domestic": {
"Group 1": {
"SGN-BMV-SGN": [
"BMV-SGN","SGN-BMV"
]
...
},...
},...
},...
}
我的做法是在上传时将其分成如下表格:
-
carriers
表 -
dom_ints
表 -
groups
表 -
routes
表 -
sectors
表
而且我还有另一个大 data
csv 文件(大约 20 万行),其中包含如下数据:
此文件与 dictionary
文件之间的关系是通过 str_Flight_Route
(dictionary
文件中的扇区)。
我的目标很简单,我只想在一页中列出这个data
csv文件的所有数据,格式如下图:
但我目前的大问题是它需要大量内存。如果我将所有数据转换成一个大 php array
并显示,20 万行数据文件至少需要 1GB memory usage
。但是如果我把所有的数据存储到不同的小表中并显示,它需要更多的内存,因为我必须循环和查询很多甚至 3GB 的内存。
谁能有其他解决方案帮助我解决这个问题?像这种格式一样显示所有 200k 行数据,仍然占用更少的内存(低于 50M)?
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。