MySQL数据库中的表被锁定
我在Python中使用MySQl.connector查询MySQl数据库。查询如下:-MySQL数据库中的表被锁定,mysql,sql,locking,mysql-python,Mysql,Sql,Locking,Mysql Python,我在Python中使用MySQl.connector查询MySQl数据库。查询如下:- SELECT item.* FROM d_table INNER JOIN i_table AS i ON (d_table.item_tag = i.item_tag) WHERE id = 20 AND timestamp >= '2000-06-30 00:00:00' AND timestamp <= '2001-07-30 00:00:00'
SELECT item.*
FROM d_table INNER JOIN
i_table AS i
ON (d_table.item_tag = i.item_tag)
WHERE id = 20 AND
timestamp >= '2000-06-30 00:00:00' AND
timestamp <= '2001-07-30 00:00:00'
GROUP BY i.id
在这里,主要的问题是表被锁定,并且由于表每0.2秒被查询一次,是否有方法解锁表或创建临时表并返回上述查询的结果我认为最简单的方法是查看表。因此,您可以仅选择视图
CREATE VIEW test_view AS
SELECT item.*
FROM d_table INNER JOIN
i_table AS i
ON (d_table.item_tag = i.item_tag)
WHERE id = 20 AND
timestamp >= '2000-06-30 00:00:00' AND
timestamp <= '2001-07-30 00:00:00'
GROUP BY i.id;
这是一个评论,但篇幅有限 这里的主要问题是表被锁定,并且因为表每0.2秒被查询一次 你用错误的方式问了错误的问题 查询序列化是否会对性能产生影响?如果是这样,那么表锁定只是问题的一部分,另一部分是运行查询所花费的时间。您没有提供任何信息来支持对性能问题的任何分析。虽然有避免锁定的方法,但这些方法可能会转化为其他性能问题 您没有提供表结构、数据分布或查询解释计划的详细信息 关于表锁定,如果不知道发生了什么类型的锁定,就不可能给出任何信息建议。这些表的数据库引擎是什么?什么是事务隔离模型?工作量是多少
select * from test_view;