结构
生产环境规范-结构
表必须有主键
INNODB表的主键(聚簇索引)保存了索引和数据行,并且二级索引的叶子节点也保存了主键值。如果没有定义主键,则会优先使用非空唯一索引来代替,如果没有唯一索引,则会使用内部隐藏的主键。所以新增表j建议有主键。
表必须包含指定列
随着业务的快速发展,数据表存储的行数破亿后,对该表的DDL和查询可能都会变慢,此时就需要对该表进行冷数据归档,作为归档的条件之一就是时间字段,保证归档可以按照时间进行。所以新增表建议有创建时间字段。
表必须指定引擎和备注
在MySQL 8.0中,默认已经不包含任何MyISAM表,所以在创建表的时,可以限制表的引擎,在高并发和高性能的场景下,推荐使用INNODB(支持事务、行锁),并且也需要设置各个列和表的备注,保证表的可读性。
适配大表OnlineDDL
线上数据库常常面临着持续的、不断变化的表结构修改(DDL),如增加、更改、删除字段和索引等等,其中一些DDL操作会锁表,影响线上服务。
通过「OnlineDDL:大表结构变更风险检测」和「OnlineDDL 配置」的规范,不仅可以提前告知,而且还能对不支持OnlineDDL的DDL语句进行转换,实现了自适应Online DDL的能力。
如果匹配到这些规范后,其中之一会出现如下图所示的说明:
生产环境规范-审核说明
查询与更新
生产环境规范-查询与更新
SELECT 语句不建议使用 *
* 表示所有字段,可能会导致不必要的数据加载和传输,尤其是当表中包含大量字段或大型数据类型时。这样做会降低查询效率,增加内存和网络的负担,并可能包含不需要的数据。建议使用指定的字段来替换*,保证SQL的可读性。
WHERE 条件中检测字段是否存在隐式类型转换
隐式类型转换可能导致索引失效,从而引起全表扫描。增加额外的计算开销,影响查询效率,甚至产生错误的结果,使用该规则可以提前发现并进行干预。
OnlineDML:大表数据变更风险检测
变更大数据量的 DML 语句(Update、Delete、Insert Into Select ),会阻塞其他正常 DML 操作,存在“锁表”风险。
使用 NineData OnlineDML,将单个 SQL 拆分成多个批次执行,以实现“不锁表”的数据变更。使用该规则,可以自动进行“分片”处理,无需关心影响的行数。
如果匹配到这些规范后,其中之一会出现如下图所示的说明:
自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。
深知大多数网络安全工程师,想要提升技能,往往是自己摸索成长,但自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!
因此收集整理了一份《2024年网络安全全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友。
既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上网络安全知识点,真正体系化!
由于文件比较大,这里只是将部分目录大纲截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且后续会持续更新
如果你觉得这些内容对你有帮助,可以添加VX:vip204888 (备注网络安全获取)
一个人可以走的很快,但一群人才能走的更远。如果你从事以下工作或对以下感兴趣,欢迎戳这里加入程序员的圈子,让我们一起学习成长!
AI人工智能、Android移动开发、AIGC大模型、C C#、Go语言、Java、Linux运维、云计算、MySQL、PMP、网络安全、Python爬虫、UE5、UI设计、Unity3D、Web前端开发、产品经理、车载开发、大数据、鸿蒙、计算机网络、嵌入式物联网、软件测试、数据结构与算法、音视频开发、Flutter、IOS开发、PHP开发、.NET、安卓逆向、云计算文章来源:https://www.toymoban.com/news/detail-852822.html
设计、Unity3D、Web前端开发、产品经理、车载开发、大数据、鸿蒙、计算机网络、嵌入式物联网、软件测试、数据结构与算法、音视频开发、Flutter、IOS开发、PHP开发、.NET、安卓逆向、云计算**文章来源地址https://www.toymoban.com/news/detail-852822.html
到了这里,关于NineData支持制定安全、可靠的SQL开发规范_mysql大表风险治理举措的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!