cookieY / Yearning

🐳 A most popular sql audit platform for mysql
http://next.yearning.io/
GNU Affero General Public License v3.0
8.52k stars 1.99k forks source link

是否考虑适配原生DDL #719

Closed kafenut closed 2 years ago

kafenut commented 2 years ago

目前Online DDL的逻辑是, 表大小超过阈值则调用pt-osc/gh-ost. 是否可以在这之前提前做一个逻辑判断, 当DDL语句指定ALGORITHM=INPLACE, LOCK=NONE;时, 不调用pt-osc, 或者直接在DDL页面加个pt-osc的开关.

cookieY commented 2 years ago

目前 是否调用pt-osc 可以通过审核规则内 IsOSC 与OSC size 进行控制 前者为全局开关 后者为启用pt-osc/gh-ost的表体积条件

kafenut commented 2 years ago

目前 是否调用pt-osc 可以通过审核规则内 IsOSC 与OSC size 进行控制 前者为全局开关 后者为启用pt-osc/gh-ost的表体积条件

我的意思是目前Mysql online DDL已经比较成熟了, 8.0里部分操作是秒级的, 比如在表尾加字段, 即便是几十个G的表. 而这时候三方工具可能要执行数小时. 对于这部分操作我不想用pt-osc, 直接用online DDL是最快的, 目前的逻辑下我在mysql8.0体积大于阈值的表里执行加字段, 仍然用的是pt-osc. 不过部分操作还是得用pt-osc, 比如修改字段类型, 原生DDL仍会锁表.

cookieY commented 2 years ago

这确实 是一个问题,后面的版本将 pt-osc等三方工具执行的选择权交给执行者