Java 一对多类型关联的策略,其中;“许多”;旁注以百万计

Java 一对多类型关联的策略,其中;“许多”;旁注以百万计,java,mysql,associations,large-data,Java,Mysql,Associations,Large Data,打个比方:类似推特的场景,一个人后面跟着大量的人(一对多) 我能想到的选择很少 使用一些或映射工具进行延迟加载。但是,当您访问关系的“追随者”端时,它仍然会加载所有数据,即使是懒散地加载。所以这不是一个合适的选择 不要维护一对多关系(或不使用任何或映射)。在单独的调用中获取“Followers”端,并以编程方式处理分页等 将获取大数据的工作转移到一些搜索堆栈(Lucene/Solr)上,这样可以更好地处理大数据。但这将在数据库更新和索引更新之间引入一些延迟 请分享您的想法/建议以及任何可能的工具

打个比方:类似推特的场景,一个人后面跟着大量的人(一对多)

我能想到的选择很少

  • 使用一些或映射工具进行延迟加载。但是,当您访问关系的“追随者”端时,它仍然会加载所有数据,即使是懒散地加载。所以这不是一个合适的选择

  • 不要维护一对多关系(或不使用任何或映射)。在单独的调用中获取“Followers”端,并以编程方式处理分页等

  • 将获取大数据的工作转移到一些搜索堆栈(Lucene/Solr)上,这样可以更好地处理大数据。但这将在数据库更新和索引更新之间引入一些延迟


  • 请分享您的想法/建议以及任何可能的工具库。堆栈由Java、MySQL组成。

    数百万对于RDBMS来说应该不是问题,因为它是为这些情况而设计的


    有时还建议进行非规范化而不是规范化,以优化应用程序的性能。这特别适用于具有非常高的读取和非常低的写入统计数据的应用程序。

    我担心RDBMS。我更关心的是在应用程序端处理这些数据。至于如何获取数据:查询优化应该会有很大帮助。另一方面:在内存中保存数百万条记录可能会对应用程序服务器的性能造成很大影响(内存方面),但您也可以对此进行优化。(延迟加载、分页加载等)