知识大全 加快ALTER TABLE 操作的速度

Posted 操作

篇首语:知识越多越令人陶醉。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 加快ALTER TABLE 操作的速度相关的知识,希望对你有一定的参考价值。

高性能MySQL:加快ALTER TABLE 操作的速度  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!

   加快ALTER TABLE 操作的速度

  MySQL 的ALTER TABLE 操作的性能对大表来说是个大问题 MySQL 执行大部分修改表结构操作的方法是用新的结构创建一个空表 从旧表中查出所有数据插入新表 然后删除旧表 这样操作可能需要花费很长时间 如果内存不足而表又很大 而且还有很多索引的情况下尤其如此 许多人都有这样的经验 ALTER TABLE 操作需要花费数个小时甚至数天才能完成

  MySQL 以及更新版本包含一些类型的 在线 操作的支持 这些功能不需要在整个操作过程中锁表 最近版本的InnoDB 注 也支持通过排序来建索引 这使得建索引更快并且有一个紧凑的索引布局

  一般而言 大部分ALTER TABLE 操作将导致MySQL 服务中断 我们会展示一些在DDL操作时有用的技巧 但这是针对一些特殊的场景而言的 对常见的场景 能使用的技巧只有两种 一种是先在一台不提供服务的机器上执行ALTER TABLE 操作 然后和提供服务的主库进行切换 另外一种技巧是 影子拷贝 影子拷贝的技巧是用要求的表结构创建一张和源表无关的新表 然后通过重命名和删表操作交换两张表 也有一些工具可以帮助完成影子拷贝工作 例如 Facebook 数据库运维团队(//launchpad net/mysqlatfacebook)的 online schema change 工具 Shlomi Noach 的openark toolkit(//code openark /) 以及Percona Toolkit(// percona /sofare/) 如果使用Flexviews(参考 节) 也可以通过其CDC 工具执行无锁的表结构变更

  不是所有的ALTER TABLE 操作都会引起表重建 例如 有两种方法可以改变或者删除一个列的默认值(一种方法很快 另外一种则很慢) 假如要修改电影的默认租赁期限 从三天改到五天 下面是很慢的方式

  mysql> ALTER TABLE sakila film

   > MODIFY COLUMN rental_duration TINYINT( ) NOT NULL DEFAULT ;

  SHOW STATUS 显示这个语句做了 次读和 次插入操作 换句话说 它拷贝了整张表到一张新表 甚至列的类型 大小和可否为NULL 属性都没改变

  理论上 MySQL 可以跳过创建新表的步骤 列的默认值实际上存在表的 frm 文件中 所以可以直接修改这个文件而不需要改动表本身 然而MySQL 还没有采用这种优化的方法 所有的MODIFY COLUMN 操作都将导致表重建

  另外一种方法是通过ALTER COLUMN 注 操作来改变列的默认值

  mysql> ALTER TABLE sakila film

   > ALTER COLUMN rental_duration SET DEFAULT ;

  这个语句会直接修改 frm 文件而不涉及表数据 所以 这个操作是非常快的

      返回目录 高性能MySQL

       编辑推荐

       ASP NET MVC 框架揭秘

       Oracle索引技术

       ASP NET开发培训视频教程

cha138/Article/program/MySQL/201311/29672

相关参考

知识大全 如何加快Oracle建立索引的速度

如何加快Oracle建立索引的速度  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  如何加快建立索

知识大全 用ALTER VIEW来改变视图

用ALTERVIEW来改变视图  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  如果你需要改变或者

知识大全 利用HTML优化加快网页速度

利用HTML优化加快网页速度  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  明显HTML暗渡公用

知识大全 如何加快imp速度

EXPORT:&#;    增加BUFFER(eg)&#;    停止所有应用(不一定现实)&#

知识大全 加快JDBC中JSP数据库的访问速度

加快JDBC中JSP数据库的访问速度  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  JSP程序都

知识大全 为了优化育人环境,提升办学水平,学校加快了校园环境改造的速度和规模。怎么修改

为了优化育人环境,提升办学水平,学校加快了校园环境改造的速度和规模。怎么修改?和改为并加大如何加强校园管理,优化育人环境如何增强校园管理,优化育人环境1.努力抓好德育方面的工作,发挥校园的灵魂作用作为

房价上涨过快的原因是多方面的。钢材、水泥等价格上涨;土地价格上涨;城镇化建设速度加快;居民收入提高,改善住房条件的要求强

房价上涨过快的原因是多方面的。钢材、水泥等价格上涨;土地价格上涨;城镇化建设速度加快;居民收入提高,改善住房条件的要求强烈;游资炒作;一些地区对房地产的调控力度不够等等。据此。下列说法错误的是____

4G是集3G与WLAN于一体,能够以100Mbps以上的速度下载,加快传输高质量音频,视频图像,几乎能满足所有用户对于无

4G是集3G与WLAN于一体,能够以100Mbps以上的速度下载,加快传输高质量音频,视频图像,几乎能满足所有用户对于无线服务要求的第四代移动通信技术。4G手机传递信息依靠的是_____。A、红外线B

要想读得快,你可以加快阅读时眼球扫视的移动速度,而且一直往前读,不允许回头重新读。你可以用手指指着文字或者用笔尖画线带动

要想读得快,你可以加快阅读时眼球扫视的移动速度,而且一直往前读,不允许回头重新读。你可以用手指指着文字或者用笔尖画线带动眼球移动,但这样做也会令理解和记忆的效果下降,甚至丢失一些重要的细节。从根本上讲

知识大全 找出哪些table没有primary key

  可以依照SCHEMA展出没有设PK的TABLE    defschema_name=&&owner_name    colsnameformataheadingSchema  co