加入收藏 | 设为首页 | 会员中心 | 我要投稿 衡阳站长网 (https://www.0734zz.cn/)- 数据集成、设备管理、备份、数据加密、智能搜索!
当前位置: 首页 > 站长学院 > MySql教程 > 正文

mysql更新/设置语句的速度.乘以一列

发布时间:2021-01-19 08:20:59 所属栏目:MySql教程 来源:网络整理
导读:我在MySql表“ temp”中有一百万行,并希望将列“ t”(int无符号,索引)乘以1000. mysql update temp set t=1000*t; 此过程需要25秒.对未编制索引的列执行相同的语句需要10秒钟; 有什么想法可以使这个过程更快吗?我必须将其应用于超过1e5的表. 最佳答案索引

我在MySql表“ temp”中有一百万行,并希望将列“ t”(int无符号,索引)乘以1000.

mysql> update temp set t=1000*t;

此过程需要25秒.对未编制索引的列执行相同的语句需要10秒钟;

有什么想法可以使这个过程更快吗?我必须将其应用于超过1e5的表.

最佳答案 索引与这里的问题无关.考虑一下您在做什么-您正在对表中的所有行进行突变,因此,无论如何选择它们,并且无论是否在t上都有索引,都仍在扫描整个表.

UPDATE操作== IO是您的瓶颈.获取更快的磁盘.

如果您使用的是InnoDB,我的唯一建议是查看将innodb_flush_log_at_trx_commit调整并将其设置为2是否有助于提高性能,但我对此表示怀疑,因为它只是1个查询.禁用密钥并在UPDATE之后重新启用它们在InnoDB中不起作用.

(编辑:衡阳站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    热点阅读