› 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
rateltalk
V2EX  ›  MySQL

MariaDB 数据库事务提交后,发现好多数据不见了

  •  
  •   rateltalk ·
    shangdev · Nov 4, 2020 · 4616 views
    This topic created in 2175 days ago, the information mentioned may be changed or developed.
    写了一个事务,要保证一致性,要么都成功,要么都回滚。
    但是发现在提交事务后,一张表中的好多数据都消失了,比如 t_user 表,提交事务前有 300 条记录,提交后变成 200 条,但实际上事务中并没有删除掉这些数据。

    事务大致内容( TP 框架):
    ```
    $db = M();
    $db->startTrans();

    ...一些删除、查询、新增、更新语句...

    $db->commit();
    return true;
    ```

    事务中包含了对同一个表记录的删除、查询、新增操作,当我移除事务时,一切正常,没有出现丢失数据的情况。所以初步怀疑是事务造成了数据的消失。

    请问有什么办法可以定位到问题所在吗?
    Supplement 1  ·  Nov 5, 2020

    刚找到问题所在,因为一条删除语句:
    $db->execute("delete from t_file where id = %d", $val['file_id']);

    因为t_file的id是uuid字符型,所以事务里执行的是 delete from t_file where id = 0,然后被删了好多数据。

    8 replies  •  2022-12-11 04:46:30 +08:00
    kidlj
        1
    kidlj  
       Nov 5, 2020
    相比怀疑 MySQL,TP 或者 MySQL driver,更要首先怀疑自己的代码。
    labulaka521
        2
    labulaka521  
       Nov 5, 2020 via iPhone
    幻觉
    wowo243
        3
    wowo243  
       Nov 5, 2020
    查代码,代码查不出来查 binlog
    rateltalk
        4
    rateltalk  
    OP
       Nov 5, 2020
    @kidlj
    @labulaka521 移除事务后,bug 不复现;添加事务后,bug 复现。。更加确认了是事务的关系
    golden0125
        5
    golden0125  
       Nov 5, 2020
    应该判断$db->commit();的返回 而不是直接直接返回 true
    CyJaySong
        6
    CyJaySong  
       Nov 5, 2020
    直接就返回 true, 你确定 commit 成功了?
    zarte
        7
    zarte  
       Nov 5, 2020
    很多人用的程序遇到问题先排除程序问题,直接查代码找问题可以省很多时间,还不会被嘲讽。
    roundgis
        8
    roundgis  
       Dec 11, 2022 via Android
    先不要懷疑數據庫
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   5478 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 31ms · UTC 01:29 · PVG 09:29 · LAX 18:29 · JFK 21:29
    ♥ Do have faith in what you're doing.