繁体   English   中英

表被锁定在MySQL数据库中

[英]Tables getting locked in MySQL database

我在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'  
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;  

然后:

select * from test_view;

这是一条评论-但注释部分中的空间有限。

在这里,主要问题是表被锁定,并且由于每0.2秒查询一次表

您以错误的方式提出错误的问题。

查询序列化会对性能产生影响吗? 如果是这样,那么表锁定只是问题的一部分,另一个是运行查询所花费的时间。 您没有提供任何信息来支持对性能问题的任何分析。 尽管有避免锁定的方法,但这些方法可能会转化为其他性能问题。

您没有提供表结构的详细信息,数据的分布或查询的解释计划。

对于表锁定,在不知道正在发生哪种锁定的情况下就不可能做出任何有根据的建议。 这些表的数据库引擎是什么? 什么是事务隔离模型? 工作量是多少?

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM