虎丘 2019-05-25 13:38 采纳率: 0%
浏览 422

java中通过jdbc执行mysql查询语句时会锁表或记录吗?

DB2数据库中查询语句不锁表可以通过:select .... from with ur指定隔离级别不会锁记录;mysql中查询语句如何达到这种效果,正常通过java jdbc调用执行?

  • 写回答

1条回答

  • 憧憬blog 2023-03-15 07:20
    关注

    在MySQL中,SELECT查询通常不会锁表,只有在进行类似UPDATE、DELETE等操作时才会出现锁表的情况。但是,如果读取的数据行正在处理中,则会在FETCH状态下生成共享锁,从而防止其他事务并发修改该数据行。

    为了避免锁表或记录,可以采用以下方式:

    1. 在mysql配置文件中设置 innodb_locks_unsafe_for_binlog=1,可以禁用binlog记录,从而避免行级锁带来的性能损失。

    2. 通过指定隔离级别为READ UNCOMMITTED或者使用NOLOCK可以避免锁记录,但是会出现脏数据的风险。

    3. 在查询语句中使用FORCE INDEX或OPTIMIZE TABLE等优化手段,尽可能地避免锁表或记录,提高查询效率。

    对于通过Java JDBC调用执行查询语句,可以使用PreparedStatement或Statement执行查询语句,同时可以通过设置连接的隔离级别或查询语句的优化方式来避免锁表或记录的问题。

    评论

报告相同问题?

悬赏问题

  • ¥15 如何在scanpy上做差异基因和通路富集?
  • ¥20 关于#硬件工程#的问题,请各位专家解答!
  • ¥15 关于#matlab#的问题:期望的系统闭环传递函数为G(s)=wn^2/s^2+2¢wn+wn^2阻尼系数¢=0.707,使系统具有较小的超调量
  • ¥15 FLUENT如何实现在堆积颗粒的上表面加载高斯热源
  • ¥30 截图中的mathematics程序转换成matlab
  • ¥15 动力学代码报错,维度不匹配
  • ¥15 Power query添加列问题
  • ¥50 Kubernetes&Fission&Eleasticsearch
  • ¥15 報錯:Person is not mapped,如何解決?
  • ¥15 c++头文件不能识别CDialog