MySQL停止接受写入

时间:2013-06-13 15:28:58

标签: mysql sql rdbms

我是MySQL的初学者,想知道MySQL是否可能锁定表格进行写入?如果是,如何避免这种情况。

我目前的情况是我正在尝试从不同的ips同时将数据重写到MySQL表。并且它工作了一段时间,而不是一些魔法发生并停止接受写入。所以我真的不知道它是我的代码还是MySQL的行为。

我真的不知道在MySQL方面哪里可以找到这种信息,所以如果你可以告诉我如何检查MySQL是否真的阻止写入或类似的东西它会很棒,到目前为止我找到了一个命令,不知道它是否会有所帮助:

mysql> SHOW ENGINE INNODB STATUS;
...
...
...
    1 lock struct(s), heap size 376, 0 row lock(s), undo log entries 1
    MySQL thread id 916, OS thread handle 0x40c07940, query id 92377 ip-10-xxxxxxx.ec2.internal 10.xxxxxxxx root
    ---TRANSACTION C2BE, ACTIVE 1602 sec
    1 lock struct(s), heap size 376, 0 row lock(s), undo log entries 1
    MySQL thread id 907, OS thread handle 0x41aee940, query id 91828 ip-10-1xxxxxxx.ec2.internal 10.1xxxxxxx root

我插入数据的方式:

def insert_dict(self, table, d):
    """Take dictionary object dict and produce sql for 
    inserting it into the named table"""
    sql = 'INSERT INTO ' + table
    sql += ' ('
    sql += ', '.join(d)
    sql += ') VALUES ('
    sql += ', '.join(map(self.column_value, d))
    sql += ');'
    return sql

def column_value(self, key):
    if type(key) is not "str":
        key = str(key)
    return '%(' + key + ')s'

这就是我使用这些功能的方式:

    sql = self.insert_dict("my-table", data)
    self.cursor.execute(sql, data)
    self.db.commit()

data是这样的python字典:{'column-name':'columnvalue'}

另外我跑了mysql> SHOW OPEN TABLES;不知道是否有帮助

+--------------------+-----------------------------+--------+-------------+
| Database           | Table                       | In_use | Name_locked |
+--------------------+-----------------------------+--------+-------------+
| my-db              | my-table                    |      0 |           0 |

0 个答案:

没有答案