sql表在mysql数据库中被锁定

but5z9lq  于 2021-06-20  发布在  Mysql
关注(0)|答案(2)|浏览(255)

我正在使用 mysql.connector 在python中。查询如下follows:-

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秒被查询一次,所以有没有办法解锁表或创建临时表并返回上述查询的结果

s1ag04yj

s1ag04yj1#

我想最简单的方法就是看一看table。因此,您可以只选择视图。

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;
x9ybnkn6

x9ybnkn62#

这是一个评论,但篇幅有限。
在这里,主要的问题是表被锁定,因为表每0.2秒被查询一次
你用错误的方式问错误的问题。
查询序列化是否会对性能产生影响?如果是这样,那么表锁定只是问题的一部分,另一部分是运行查询所花费的时间。您没有提供任何信息来支持对性能问题的任何分析。虽然有避免锁定的方法,但这些方法可能会转化为其他性能问题。
您没有提供表结构、数据分布以及查询的解释计划的详细信息。
具体到表锁定,如果不知道发生了什么样的锁定,就不可能给出任何信息化的建议。这些表的数据库引擎是什么?什么是事务隔离模型?工作量是多少?

相关问题