› MySQL 5.5 Community Server
› MySQL 5.6 Community Server
› Percona Configuration Wizard
› XtraBackup 搭建主从复制
Great Sites on MySQL
› Percona
› MySQL Performance Blog
› Severalnines
推荐管理工具
› Sequel Pro
› phpMyAdmin
推荐书目
› MySQL Cookbook
MySQL 相关项目
› MariaDB
› Drizzle
参考文档
› http://mysql-python.sourceforge.net/MySQLdb.html
awanganddong
V2EX  ›  MySQL

mysql 一个事务中多表操作是怎么处理的

  •  
  •   awanganddong · May 21, 2020 · 5230 views
    This topic created in 2318 days ago, the information mentioned may be changed or developed.
    一般这种应该是看具体业务情况
    
    现在我负责的内容主要是广告的统计及扣费这部分
    
    1.用户点击或者浏览然后把广告上报给我
    2.然后我对广告进行扣费
    
    现在需要对多张表处理,而且必须在一个事务中完成
    这样特别容易出现锁表这种情况
    
    对广告的计费是需要尽可能保证近实时扣费
    不然容易出现预算不足的情况
    
    这里边有实际一些的解决方案或者说在一个事务中多表操作怎么处理比较好
    
    现在个人能力以及业务不适合引入太多的新技术
    
    
    7 replies  •  2020-05-21 13:50:31 +08:00
    xizismile
        1
    xizismile  
       May 21, 2020 via Android
    锁表?你测试过吗?你用的数据库事务隔离级别是啥?表有加索引吗?具体啥情况出现了锁表?描述一个场景出来
    zoharSoul
        2
    zoharSoul  
       May 21, 2020
    这样特别容易出现锁表这种情况


    并不认同
    peyppicp
        3
    peyppicp  
       May 21, 2020 via iPhone
    没命中索引才会去去锁表
    awanganddong
        4
    awanganddong  
    OP
       May 21, 2020
    mysql 版本 8.0

    READ-COMMITTED 读已提交隔离模式

    每个表都有加索引

    查看系统日志发现有操作失败的记录

    初步怀疑是在事务过程中出现操作锁表的问题

    现在 mysql 日志我这里获取不到
    weizhen199
        5
    weizhen199  
       May 21, 2020
    这个感觉也不太需要数据库这种非常强的事务吧
    awanganddong
        6
    awanganddong  
    OP
       May 21, 2020
    对业务的取舍这里,这里边也感觉到有些不合理

    但是更好的方法我现在还没想到
    chmaple
        7
    chmaple  
       May 21, 2020
    可以试试 redis 锁
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   2317 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 31ms · UTC 16:09 · PVG 00:09 · LAX 09:09 · JFK 12:09
    ♥ Do have faith in what you're doing.