StackTc 2018-07-19 01:57 采纳率: 90.9%
浏览 1228
已采纳

关于数据库读写分离读问题,求大神指导

数据库读写分离是希望数据库修改操作不影响数据库查询读效率。
那么问题来了
1:如果不进行读写分离,也是可以同时进行修改跟查询操作的吧
2:如果进行了读写分离,同时进行查询操作跟修改操作,那么这个查询操作不会出现脏读现象吗。
  • 写回答

5条回答

  • ayuan_23 2018-07-19 02:17
    关注
    1. 不进行读写分离,可以同时进行修改和查询. 但是这个“同时”是需要加双引号的,因为需要看数据库的多个事务的隔离级别。 多个事务同时进行的时候,为了防止互相干扰,数据库有隔离级别。
    2. 如果进行了读写分离,是否会脏读 答案是会,但是概率非常低,计算机科学没有完美的解决方案,许多方案只是出错概率低而已。 读写分离,那么写库的数据变化,需要及时同步到读库(从库), 一般情况下,数据文件的同步比查询快的多, 数据延迟没有那么严重,基本都是秒级的,可能两个请求来回,数据就已经同步好。不会出现脏读的情况, 但是在一些特殊的场景下,比如网络抖动,新加字段,可能数据同步延迟会变大, 此时master slave的数据会出现不一致,如果insert/update/delete后立刻select, 就有可能读不到或者脏读。所以具体把读写分离放在哪一层,以及数据同步的优先级和策略, 写库发生变更部分的那一部分数据,从库是否需要加读锁等方案,都要根据业务类型和实际情况来决定。 再说一遍,许多问题没有完美的方案,只有合适的方案
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(4条)

报告相同问题?

悬赏问题

  • ¥15 seatunnel-web使用SQL组件时候后台报错,无法找到表格
  • ¥15 fpga自动售货机数码管(相关搜索:数字时钟)
  • ¥15 用前端向数据库插入数据,通过debug发现数据能走到后端,但是放行之后就会提示错误
  • ¥30 3天&7天&&15天&销量如何统计同一行
  • ¥30 帮我写一段可以读取LD2450数据并计算距离的Arduino代码
  • ¥15 C#调用python代码(python带有库)
  • ¥15 飞机曲面部件如机翼,壁板等具体的孔位模型
  • ¥15 vs2019中数据导出问题
  • ¥20 云服务Linux系统TCP-MSS值修改?
  • ¥20 关于#单片机#的问题:项目:使用模拟iic与ov2640通讯环境:F407问题:读取的ID号总是0xff,自己调了调发现在读从机数据时,SDA线上并未有信号变化(语言-c语言)