我的linux网络服务器上的某些数据库存在一个非常奇怪的性能问题。第一:
以下查询非常慢(只是不时):
UPDATE t_contentlocks
SET lastaccess = NOW(), has_write_access = '1'
WHERE id = '10'
字段“id”是主(整数),表有大约20个条目。这样的查询如何处理30秒?目前没有其他疑问。它的外观/感觉就像mysql服务器进入某种休眠模式,现在需要时间再次唤醒。通常,此查询的时间少于0.00001秒。
是否有人遇到同样的问题/解决方法?
谢谢!
答案 0 :(得分:0)
你查询id = '10'
,id是一个int。每次运行查询时,id都将转换为varchar,而indez将不是用户。所以这样做会快得多:
WHERE id = 10
现在索引将是用户,我不确定它会解决你的30秒问题。
答案 1 :(得分:0)
除了同行答案,您还可以检查分析查询,然后通过查看查询执行需要更多时间来做出正确的决定。
SET PROFILING=1;
UPDATE t_contentlocks
SET lastaccess = NOW(), has_write_access = '1'
WHERE id = '10';
show profile for QUERY 1;