mysql大型数据集,有大量时间显示在Angular 组件和从数据库导出的小型csv文件中

ssgvzors  于 2021-06-18  发布在  Mysql
关注(0)|答案(0)|浏览(209)

编辑
我只从所有查询中选择了一个字段,文件大小减小到 433Kb 但显示时间是13秒。
编辑结束
我有以下疑问:

SELECT *,  DATE(h.hh_date_added) as dateOnly FROM unit u 
                    INNER JOIN househ h
                    ON u.unit_id=h.unit_id
                    LEFT JOIN location l
                    ON l.location_id_auto=u.location_id_auto
                    LEFT JOIN user us
                    ON us.user_id = h.user_id
                    ORDER BY dateOnly DESC

在phpmyadmin上运行它时,它在0.233秒内执行,返回11331行,包含近20个字段。
如果我将数据导出到csv或excel中,它的大小将是830kb。
当使用php将此结果返回到angular 6时 httpclient 服务将其显示在Angular 材质表中:

getDataByType(){
    this.showSpinner=true;
    this.auth.getDataByType(this.dataType).subscribe(
      (data)=>
      {
        console.log(data)
        this.dataSource = new MatTableDataSource(Object.values(data));
        this.dataSource.paginator = this.paginator;
        this.dataSource.sort=this.sort;
        this.showSpinner=false;
      },
      (error)=>
      {
        console.log("Error: "+error)
      }
    )

  }

将数据显示在表中并显示给用户需要30秒以上(如内容下载时间所示)。
时间显示在googlechrome网络标签的时间标签上,文件大小为 15.9 Mb .
为什么文件这么大?
是物料表在接收数据后花费太多时间显示数据的问题:
我不这么认为,因为我正在测试它 postman 以20秒的不同时间返回相同的文件大小。
或者由于返回大量数据集的查询错误:
我不这么认为,在服务器计算机上,结果在不到几秒钟内返回,excel文件的大小小于1 mb。
是不是因为我把它作为json编码的数据返回,而chrome需要一些时间来处理它?
不,因为我尝试在数组中发送数据而不使用 json_encode 功能和仍然给予同样的大小更大(17mb)。
那么,是局域网/路由器问题导致下载时间过长还是其他原因?
请参考我上一个关于堆栈的问题来检查到本地服务器的连接脚本。

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题