【问题标题】:Perfomance in Spring MVC appSpring MVC 应用程序中的性能
【发布时间】:2014-08-06 06:55:15
【问题描述】:

我有一个应用程序可以将文件的内容逐行添加到数据库中。如果文件不是那么大(小于 100 kB)它会很好地工作,但我不能对大文件说同样的话。我发现INSERT 查询大约需要 1 msc,所以 50k INSERT 需要 50 秒。我觉得它很慢。这是我的计划:

  • 如果文件足够大,请在另一个线程中执行INSERT
  • 如果没有,同步进行

所以,如果文件很大,每个用户都会运行新线程。我的意思是我不能使用这个线程的一个实例,每个用户都会运行新的。这是个好主意吗?你会怎么做?

【问题讨论】:

  • Spring 支持异步任务。请参阅参考手册中的@Async 注释或“任务执行与调度”一章。

标签: java multithreading spring servlets


【解决方案1】:

两点:

  • 为什么不使用批量更新?我的意思是一次对数据库进行多次插入。网络往返耗费大量时间,您可以显着提高性能。
  • 异步执行更新是个好主意。但实际上并不意味着您需要为每个用户创建新的线程。它可以是一个固定的线程池(比如说 5 个)来为所有用户完成这项工作。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-06-03
    • 1970-01-01
    • 1970-01-01
    • 2015-10-27
    • 2011-03-02
    • 1970-01-01
    • 2023-03-16
    • 2021-04-23
    相关资源
    最近更新 更多