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

标签 mysql performance

我在 MySql 表“temp”中有 100 万行,并希望将列“t”(int unsigned,indexed)乘以 1000。

mysql> update temp set t=1000*t;

此过程需要 25 秒。在非索引列上执行相同的语句需要 10 秒;

有什么想法可以加快这个过程吗?我必须在超过 1e5 个表上应用它。

最佳答案

您可以关闭索引并在更新完成后重新打开

ALTER TABLE tbl_name DISABLE KEYS;
ALTER TABLE tbl_name ENABLE KEYS;

或者如果你正在使用 myISAM 您可以使用 delay_key_write 标志。您可以按表设置它,或者 全局范围内。可以使用“FLUSH TABLE mytable”命令强制mysql 更新索引的磁盘副本。

http://dev.mysql.com/doc/mysql/en/create-table.html

http://dev.mysql.com/doc/mysql/en/myisam-start.html

http://dev.mysql.com/doc/mysql/en/flush.html

关于mysql - mysql 更新/设置语句的速度。乘以一列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/850373/

相关文章:

sql - 55 gig - 逗号分隔文件 - 读入 mysql 数据库

MYSQL 数据库 - 如何使用存储应显示的订单项目的 "order"列 - 按另一列分组

c++ - 如何在 Linux 上为 C++ 应用程序分配 "huge"页面

performance - SQL Server Express 性能问题

php - Joomla 只是很慢,还是我能以某种方式加快它的速度?

php - 使用 ENCTYPE 处理表单数据

php - 一个数据库中具有不同字符编码的表。学说问题

PHP、MYSQL + javascript?根据三个用户 SELECT 输入产生一个结果(价格)

performance - 在 Matlab 中有效计算成对平方欧氏距离

performance - 今天解释型语言应该有多快?