• 高性能mysql读书笔记(一):Schema与数据类型优化


    4.5 加快ALTER TABLE 操作的速度

    原理:

    MySQL 的ALTER TABLE 操作的性能对大表来说是个大问题。

    MySQL 执行大部分修改表结构操作的方法是用新的结构创建一个空表,从旧表中查出所有数据插入新表,然后删除旧表。这样操作可能需要花费很长时间,如果内存不足而表又很大,而且还有很多索引的情况下尤其如此

    特点:

    • 大部分ALTER TABLE 操作将导致MySQL 服务中断
    • ALTER TABLE 本质是建新结构的表,从旧表插入数据到新表 (SHOW STATUS 显示这个语句做了1 000 次读和1 000 次插入操作)
    • ALTER table 会锁表,整个表是只读锁定

    解决办法:

    1:一种是先在一台不提供服务的机器上执行ALTER TABLE 操作,然后和提供服务的主库进行切换;

    2:另外一种技巧是“影子拷贝”。影子拷贝的技巧是用要求的表结构创建一张和源表无关的新表,然后通过重命名和删表操作交换两张表。

  • 相关阅读:
    Could not find file '..inhibernate.cfg.xml'解决方法:
    图片轮播插件-carouFredSel
    C语言数组
    C语言字符串
    C语言指针基础
    python 多线程
    Andriod之Activity
    Java面向对象的编程
    C++模板编程
    关于思考
  • 原文地址:https://www.cnblogs.com/Alight/p/5238083.html
Copyright © 2020-2023  润新知