如果应用程序需要获取此大型数据集,我们可以从下面三个方面入手:

  • 缩小数据

  • 减少延迟时间

  • 接受读取的时间

1、缩小数据

要做到这一点,我们可以做 3 件事

  1. 读取少量数据,只获取需要的数据。比如,以下四点:

    a)限定分区(按日期分区)查询,通过合理的分区来减少数据量,避免全表扫描;

    b)限定查询字段,避免 select *,仅选择需要的字段, select *会解析数据字段,且在索引上没办法优化;

    c)在关联前过滤数据,在进行数据表关联查询之前按照业务逻辑进行数据过滤,从而避免关联字段的无效值(NULL)或有效值过多;

    d)结合索引(复合索引)使用;

  2. 进行分页,每页只获取一部分

  3. 压缩数据

当然,为了加快读取过程,还可以预处理此数据并通过预分页使其读取更加友好。如果数据对外提供可以将读取结果重新格式化,以便获取或压缩的数据更小。

2、减少延迟时间

可以从数据库服务器中获取所有数据并将其缓存在本地应用程序服务器上,以减少延迟。但这也会引发其它问题的产生。我们可以结合第 1 点将活跃数据缓存起来,并使用缓存策略,有效的提高性能。

3、接受读取的时间

数据集本来就很大,读取数据本身就需要一定时间才能完成。当然,你可以在屏幕上放置一个漂亮的加载进度条,让用户等待,如果用户愿意接受。

希望在大数据读取优化上有些帮助。

祝大家学习愉快!

Logo

永洪科技,致力于打造全球领先的数据技术厂商,具备从数据应用方案咨询、BI、AIGC智能分析、数字孪生、数据资产、数据治理、数据实施的端到端大数据价值服务能力。

更多推荐