首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >update/delete sql语句查询慢

update/delete sql语句查询慢
EN

Stack Overflow用户
提问于 2010-07-07 04:02:17
回答 4查看 2.5K关注 0票数 0

在mysql中有很多慢查询,只与update和delete相关。这些表有2个索引列,没有繁重的索引表。每个表平均有30K条记录。

请给出您的建议,如何克服与更新和删除查询相关的慢查询。这些类型的查询:

代码语言:javascript
复制
DELETE FROM <table2> 
 WHERE ID IN (SELECT ID 
                FROM <table1> WHERE ID2=100); 

...or:

代码语言:javascript
复制
UPDATE <table1> 
   SET <colmunname>=0 
 WHERE id=1001; 
EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2010-07-07 04:10:56

由于对表进行了索引,因此我的第一个建议是使用ANALYZE TABLE更新表的统计信息

代码语言:javascript
复制
ANALYZE TABLE table1, table2

但要注意:

在分析期间,表使用MyISAM、BDB和InnoDB的读锁定进行锁定。

票数 2
EN

Stack Overflow用户

发布于 2010-07-07 04:09:21

你的问题只存在于更新和删除上,这一事实告诉我你可能索引太多了。

索引将极大地减少某些查询所需的时间,但在表中插入、更新和删除条目时将需要额外的工作。尝试消除经常更新的列上的索引,特别是如果它们不经常出现在where查询的SQL子句中。

票数 1
EN

Stack Overflow用户

发布于 2010-07-07 04:12:55

管理索引和外键关系都会在update和delete操作期间产生开销。我会在一台开发服务器上恢复你的prod db的一个副本,删除所有的外键约束,所有的期望你的主键索引,看看性能的差异。然后,您可以重新添加索引,直到您的应用程序有了更好的性能平衡。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3189771

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档