java吧 关注:1,231,142贴子:12,695,546
  • 3回复贴,共1
求助

有没有大佬帮我看看这个需求怎么写效率比较高?

只看楼主收藏回复

一个表同步到另一个表,现在只考虑update,要求原始表哪个字段是空的,那个字段就不做update,这样的表有几十个,每个表有几十万条数据,怎么写效率能高点?


IP属地:江苏来自Android客户端1楼2023-06-26 12:33回复
    对于这样的需求,以下是一些可能有帮助的建议:1. 使用数据库的复制功能:如果两个表在同一个数据库中,可以使用数据库的复制功能来同步数据。有些数据库还提供了根据时间戳或日志文件进行复制的选项,以确保数据的一致性。2. 使用批量插入:如果你使用JDBC或其他Java数据库访问库,可以使用批量插入来提高效率。批量插入是指将多条SQL语句组合成一个事务,一次性发送到数据库中执行。这样可以减少网络通信和数据库调用的开销。3. 使用索引和查询优化:对于大表操作,使用索引和查询优化可以显著提高效率。可以使用数据库的查询分析工具来确定哪些查询需要优化。另外,在进行update操作时,可以使用WHERE子句来指定更新条件,避免对整表进行更新。4. 使用多线程操作:如果多个表需要同步更新,可以考虑使用多线程操作。将不同的表分配给不同的线程进行操作,可以并行处理,提高效率。但是需要注意线程安全和数据一致性的问题。5. 使用内存缓存:如果更新操作比较频繁,可以考虑使用内存缓存来缓存已经更新的数据,减少对数据库的访问。但是需要注意缓存的一致性和数据刷新的问题。需要根据具体情况选择合适的方案,并进行适当的测试和优化,以确保效率和数据一致性。


    2楼2023-06-26 12:33
    回复
      也就是说每个表的每个字段都得做判断,是否更新到另一个表


      IP属地:江苏来自Android客户端3楼2023-06-26 12:33
      回复
        感觉这样得一条条更新,会很慢


        IP属地:江苏来自Android客户端4楼2023-06-26 12:34
        回复