暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

数据库操作行为规范

原创 18394893980 2022-07-29
451

1、超100万⾏的批量写(UPDATE、DELETE、INSERT)操作,要分批多次进⾏操作

⼤批量操作可能会造成严重的主从延迟,主从环境中,⼤批量操作可能会造成严重的主从延迟,⼤批量的写操作⼀般都需要执⾏⼀定长的时间,⽽只有当主库上执⾏完成后,才会在其他从库上执⾏,所以会造成主库与从库长时间的延迟情况。

binlog⽇志为row格式时会产⽣⼤量的⽇志,⼤批量写操作会产⽣⼤量⽇志,特别是对于row格式⼆进制数据⽽⾔,由于在row格式中会记录每⼀⾏数据的修改,我们⼀次修改的数据越多,产⽣的⽇志量也就会越多,⽇志的传输和恢复所需要的时间也就越长,这也是造成主从延迟的⼀个原因,

⼤批量修改数据,⼀定是在⼀个事务中进⾏的,这就会造成表中⼤批量数据进⾏锁定,从⽽导致⼤量的阻塞,阻塞会对MySQL的性能产⽣⾮常⼤的影响。

特别是长时间的阻塞会占满所有数据库的可⽤连接,这会使⽣产环境中的其他应⽤⽆法连接到数据库,因此⼀定要注意⼤批量写操作要进⾏分批。

2、对于⼤表使⽤pt-online-schema-change修改表结构

避免⼤表修改产⽣的主从延迟

避免在对表字段进⾏修改时进⾏锁表

对⼤表数据结构的修改⼀定要谨慎,会造成严重的锁表操作,尤其是⽣产环境,是不能容忍的。

pt-online-schema-change 它会⾸先建⽴⼀个与原表结构相同的新表,并且在新表上进⾏表结构的修改,然后再把原表中的数据复制到新表中,并在原表中增加⼀些触发器。把原表中新增的数据也复制到新表中,在⾏所有数据复制完成之后,把新表命名成原表,并把原来的表删除掉。把原来⼀个DDL操作,分解成多个⼩的批次进⾏。

3、禁⽌为程序使⽤的账号赋予super权限

当达到最⼤连接数限制时,还运⾏1个有super权限的⽤户连接super权限只能留给DBA处理问题的账号使⽤。

4、对于程序连接数据库账号,遵循权限最⼩原则

程序使⽤数据库账号只能在⼀个DB下使⽤,不准跨库 程序使⽤的账号原则上不准有drop权限,⽆delete权限。

5、运维⽇志

任何操作都要记录在运维⽇志。

6、审计

任何操作都要经过DBA审核。

7、测试

禁⽌在线上做压⼒测试

「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论