各位朋友,大家好!我是老张,今天咱们来聊聊MySQL的Online DDL,尤其是ALGORITHM=INPLACE这块儿。这可是个宝贝,能让你在不锁表的情况下,优雅地修改表结构,简直是运维的福音! 一、 为啥需要Online DDL? 话说当年,没有Online DDL的时候,修改个表结构那真是要命。你想想,一个线上跑着的表,数据量几百万甚至几亿,你要加个字段、改个类型,直接ALTER TABLE?那可是要锁表的!整个数据库都得卡住,用户直接投诉到你怀疑人生。 所以,Online DDL就应运而生了。它的目标很简单:在修改表结构的同时,尽量减少对线上业务的影响。最好就是能做到“零感知”,用户该用就用,一点感觉都没有,那才叫牛! 二、 Online DDL的三种算法:COPY、INPLACE、INSTANT MySQL 5.6之后,引入了Online DDL,提供了三种算法:COPY、INPLACE和INSTANT。 COPY: 这是最原始、最粗暴的方式。它会创建一个新的表,把老表的数据复制过去,然后在新的表上执行修改,最后再把新表重命名成老表的名字。这期间,老表会被锁定,不能进行任何 …
继续阅读“MySQL高阶讲座之:`MySQL`的`Online DDL`:`ALGORITHM=INPLACE`的实现原理。”