相关疑难解决方法(0)

更改大型MySQL InnoDB表

添加新列或添加新索引可能需要数小时或数天才能使MySQL中的大型innodb表行超过1000万行.在这两种情况下,提高大型innodb表的性能的最佳方法是什么?更存储器,调整上述结构(例如增加sort_buffer_size的值innodb_buffer_pool_size),或某种特技的?可以创建一个新表,更改它,然后将旧数据复制到新表中,而不是直接更改表,这对ISAM表多个更改很有:

CREATE TABLE tablename_tmp LIKE tablename;
ALTER TABLE tablename_tmp ADD fieldname fieldtype;
INSERT INTO tablename_tmp SELECT * FROM tablename;
ALTER TABLE tablename RENAME tablename_old;
ALTER TABLE tablename_tmp RENAME tablename;
Run Code Online (Sandbox Code Playgroud)

对于innodb表也是值得推荐的,还是ALTER TABLE命令的用途?

mysql optimization performance

36
推荐指数
1
解决办法
2万
查看次数

为InnoDB的ALTER TABLE优化MySQL

很快我们就需要对生产数据库进行架构更改.我们需要尽量减少这项工作的停机时间,但是,ALTER TABLE语句将运行很长一段时间.我们最大的表有1.5亿条记录,最大的表格文件是50G.所有表都是InnoDB,它被设置为一个大数据文件(而不是每个表的文件).我们在8核机器,16G内存和RAID10配置上运行MySQL 5.0.46.

我有一些MySQL调优的经验,但这通常集中在来自多个客户端的读取或写入.有关此主题的互联网上有很多信息,但是,关于(暂时)调整MySQL服务器以加速InnoDB表上的ALTER TABLE或INSERT INTO的最佳实践,似乎很少有信息可用. .SELECT FROM(我们可能会使用它而不是ALTER TABLE来获得更多机会来加快速度).

我们计划进行的架构更改是向所有表添加一个整数列,并将其作为主键,而不是当前主键.我们还需要保留"旧"列,因此不能覆盖现有值.

尽可能快地完成这项任务的理想设置是什么?

mysql performance alter-table

29
推荐指数
6
解决办法
2万
查看次数

标签 统计

mysql ×2

performance ×2

alter-table ×1

optimization ×1