mysql 什么是审核上线_自动审核及上线系统
自动审核:
在日常的DBA工作中,表结构的审核并上线,表结构的修改审核并上线,占据了工作的很大时间,尤其是在产品快速迭代、快速试错阶段,这样,DBA同学们就会陷入所谓的审核SQL的无限制的机械运动中《新建表、改表》。
所谓审核,我个人认为就是一系列的条件规则,然后像套公式似的,把SQL往里套,鉴于此,我们自己就设计了一套自动审核系统,极大的加快审核流程。当然了,很多细小的规则随着数据库版本、线上硬件环境也会有一些改变,审核的准确性也会受到一些影响,但是如果审核系统能帮我们搞定一些初级的小问题,我就心满意足了。
在做系统之前,根据经验就制定了一些规则:如下,当然不是所有的都跟性能有直接关系,有的只是为了追求美观、追求极致而设定。
1、表结构是否合法
//不合法当然不能通过
2、表名、列名长度超过 16
//主要跟我们自己的授权有关系
3、必须有 unsigned
//业务最容易忘记添加,当然如果一定要负值,那么就走人工审核;
4、必须为 InnoDB
//当然了,我已经忘记还有MyISAM了,统计系统除外
5、int bigint(10) 不能小于 10
//大家见过int(1)的情况么?
6、varchar 长度小于 3000 //
这也算是一个人为规定,没有任何意义
7、text 字段个数不能大于 3
//人为规定而已
8、主键必须为 int 类型 //不int,真的会死人
9、索引不能有重复 //见过key(id),key(id,uid)的情况吗?
10、索引个数不能大于 5 个(包括主键)
//人为定义而已
11、索引字段必须为 not null,并且有 default
值
//参照高性能那本书说的,其实不一定影响性能
12、SQL 是否使用到索引 //不能用到索引的SQL,真的很惨
13、SQL 中不能有 * //由于*
经常导致流量、O巨大,所以,也强制了
14、自增字段必须为 int 或者 bigint
//见过自增用smallint的吗?然后一下就溢出了
15、请不要使用非 MySQL 保留字(Reserved Words)
//写脚本,大家讨厌符号么?
规则设计好了,那么就是嵌入我们的Hulk平台了,在用户平台,业务根据业务标记,提供Create
SQL、Alter
SQL已经线上运行的SELECT,提交后,会直接调用后端审核程序,程序根据以上规则,进行审核,如果审核不通过,那会直接退回业务人员,并给出除了哪个规则,业务人员根据反馈修改,在SQL为通过审核前,DBA是完全不用参与,也根本不知道业务提过需求,这样,就极大的降低了DBA的工作量。
这个系统有一些挑战:
1、因为MySQL的SQL语法非常非常的多,尤其是Alter
SQL,无法兼容所有的SQL,例如:多个add column、create
index与add
index、modify与change等;如果处理不好,会造成业务人员的极大困惑,本来没有问题的,但是自动审核就是不通过;
2、业务会把insert语句也传到Hulk平台审核、或者符号的控制
,更有甚至,传的SQL就是错误的,还有库名、表名不正确,或者添加一个本已经有的字段,根本就防不慎防;
3、在每行结果的注释#,控制起来也麻烦;
自动上线:
自动审核完毕,当然我们就需要上线了,这里,我们也期望不要通过人为的去登录MySQL,建表、改表,造成大量的无价值的机械运动。
建表上线:这个比较简单,审核通过,我们只需要根据业务标记,让Hulk调用上线程序直接在数据库中执行SQL即可;
改表上线:这个能直接上线吗?当然,在极大部分情况下,我们是直接上线的,规则一些规则:
1、表小于10w行,小于10M空间大小,那么直接执行SQL;
2、如果不满足1,并且满足percona
online-schema-change条件,那么通过osc工具,进行在线修改;(最大干过60G的表,当然搞了很长时间)
3、如果1、2都不行,走人工上线流程;
在99%的情况下,我们上线是不需要关心的,伙伴们可以做点更有意义的事情了。
mysql 什么是审核上线_自动审核及上线系统相关推荐
- 两个变量相乘_自动控制原理-信号流图与系统状态变量传递函数之间联系如此紧密...
自动控制原理-信号流图与系统状态变量传递函数之间联系如此紧密 实例分析: 带有正反馈,负反馈,信号线交叉的结构图简化: 比较点ab之间是一个并联方框连接,引出点1夹在两个比较点a,b之间,G1G2无法 ...
- python自动售货机_自动售货机支付系统详解
自动售货机从机械自动售货机发展到今天已经有智能自动售货机了.机械式自动售货机功能性很差,能售卖的产品也有限.一般被用于饮料的售卖.而智能自动售货机可以连接物联网和互联网.支持移动支付,可以售卖几乎任意 ...
- mysql 表上线_腾讯云上线数据库 MySQL 8.0 版
原标题:腾讯云上线数据库 MySQL 8.0 版 北京商报讯(记者 魏蔚)7月8日,腾讯云正式发布数据库MySQL 8.0版,通过优化锁系统,事务系统等模块,进一步提升性能,使得QPS(每秒查询率)超 ...
- mysql访问跨网御_网御网络审计系统(数据库审计型)
完善的数据库审计 网御网络审计系统(数据库审计型)全面支持对各种常见商业数据库.开源数据库及国产 数据库系统的审计,例如 Oracle.DB2.Sybase.Informix.SQL Server.T ...
- MySQL表对账设计_从零开始设计对账系统
前言 对账系统作为支付系统中的基石系统,处于整个支付环节中的最后一层,主要用来保证我方支付数据与第三方支付渠道或银行的数据一致性. 在没有对账系统之前,财务在第二日手工核对前一日的应收与实收.倘若不一 ...
- 贝聊SQL自动审核系统
文章作者:刘汉华,贝聊高级运维工程师 下面是我的第一次需求分析及原型设计作品,这里整理了一下跟有需要的朋友们分享! 一. 需求背景 1.1 需求要解决什么问题 针对MySQL语句写法的统一化标准,人工 ...
- 用友U8调拨单、组装拆卸单、盘点单审核后自动审核对应的其他出入库单
用友U8+中,调拨单.组装拆卸单.盘点单审核后,自动审核对应的其他出入库单. 解决方法 针对账套库执行,查询语句: select * from AccInformation where cSysID ...
- 【U8】调拨单审核后自动审核对应的其他出入库单
需求描述: U8V13.0,客户希望调拨单审核后,自动审核对应的其他出入库单. 解决办法: 打库存管理(ST)补丁,并执行以脚本:(该脚本对于自动审核组装拆卸单.盘点单生成的其他出入库单同样有效.) ...
- 【U8+】用友U8+自动审核自动生成的其他出入库单据
[问题需求] 用友U8+中,客户希望调拨单.组装拆卸单.盘点单审核后,自动审核对应的其他出入库单. [解决方法] 针对账套库执行,查询语句: select * from AccInformation ...
- sql自动审核工具-inception
[inception使用规范及说明文档](http://mysql-inception.github.io/inception-document/usage/) [代码仓库](https://gith ...
最新文章
- 拷贝的Android源码不能单独编译mmm命令提示找不到
- MySQL管理一些基础SQL语句
- 交换机的一些常见网络命令
- Eurasia3 支持百万级用户的服务器和框架 - 国内开源项目介绍
- Ajax 模糊查询的简单实现
- 云效Codeup代码评审中的代码协同
- java 程序迁移后oracle 数字溢出_Spring Boot 应用迁移到 Java 11
- Spring配置跨域请求
- laravel5.1 基于redis实现任务队列
- 组态软件专用短信终端
- 关于脏读,不可重复读,幻读的理解
- 等保三级全称是什么?是什么意思?
- c语言 gets getc,6.16 C语言,getchar gets getc有什么区别 分别是表示什么的
- 微信公众号推广分享二维码,关联扫码关注的客户
- 智慧消防三维地理信息应急指挥平台
- Python 中的 sequence 类型
- 为什么一般的眼科医院很难发现眼底疾病?这个是关键!
- K8S中的亲和,污点和容忍
- 解决使用yum安装软件时出现GPG-Key的问题
- 主控AU6989SN-GTC/AU6998SN [F500] - F/W FD04,爱国者U盘被写保护怎么办?
热门文章
- Interesting Finds: 2008.04.18
- 教程 | 如何使用Docker、TensorFlow目标检测API和OpenCV实现实时目标检测和视频处理
- Linux网站搭建(1)---Apache2安装配置
- 计算机图形学与混合现实研讨会GAMES: Graphics And Mixed Environment Seminar
- Atitit 信息安全体系 资料书籍表 1. 《信息安全原理与技术	2 1.1. 第2章 工具箱: 鉴别、 访问控制与加密	2 1.2. 第3章 程序和编程 漏洞 木马 病毒	3 1.3. We
- Atitit 依赖管理之道 1. 概念 依赖管理,是指在什么地方以什么形式引入外部代码。	1 1.1.1. 理解模块化和依赖管理:	1 1.2. 依赖管理,有三个层面。 单一职责原则,协议对象引用,
- Atitit 图像指纹识别匹配sift算法 atlks总结
- Atitit.计算机图形图像图片处理原理与概论attilax总结
- paip.索引的种类以及实现attilax 总结
- paip.chrome使用ACTIVX 的总结