美文网首页
MySQL处理高并发查询和写入的几个技巧

MySQL处理高并发查询和写入的几个技巧

作者: Katou_Megumi | 来源:发表于2019-04-19 18:05 被阅读0次
    1. 在有主从数据库读写分离的情况下,写主库,有主从同步延迟,如何保证查到最新的数据?

    一个很简单的办法,你确认写入成功后不再次读库,直接将你写入的数据返回给用户,这就是一种很常见的操作

    2.做任务赚积分。前端发出增加积分请求,如果收不到响应会重试。后端在数据库增加积分的时候如何保证不重复增加?

    前端传入原有积分和要增加的积分,update XXX set score=XX where score=X
    这是一种乐观锁的思想,
    这也就是所谓的大名鼎鼎的 CAS算法

    • 什么是CAS

    CAS是英文单词CompareAndSwap的缩写,中文意思是:比较并替换。CAS需要有3个操作数:内存地址V,旧的预期值A,即将要更新的目标值B。
    CAS指令执行时,当且仅当内存地址V的值与预期值A相等时,将内存地址V的值修改为B,否则就什么都不做。整个比较并替换的操作是一个原子操作。
    这是一种很常用的解决高并发的使用乐观锁思想的机制。
    CAS也不是完美的,有自己的问题。具体可以参考这篇文章:面试必问的CAS,你懂了吗?

    相关文章

      网友评论

          本文标题:MySQL处理高并发查询和写入的几个技巧

          本文链接:https://www.haomeiwen.com/subject/vmccgqtx.html