前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >SQL审核 | 这里有 MySQL/Oracle 最常用的 SQL 开发规则

SQL审核 | 这里有 MySQL/Oracle 最常用的 SQL 开发规则

原创
作者头像
爱可生开源社区
发布2022-06-02 16:48:33
4420
发布2022-06-02 16:48:33
举报

本文来源:原创投稿

*爱可生开源社区出品,原创内容未经授权不得随意使用,转载请联系小编并注明来源。


SQL审核工具 SQLE 企业版近期推出了Oracle审核插件的第一个测试预览版。我们采集了过往我们在客户那碰到的问题和行业专家的建议,整理了一大批Oracle审核规则。这个版本我们从中挑选出现频次最高的以及影响范围最大一批规则加入到了Oracle审核插件中,这些规则能覆盖大多数客户的大多数场景,却又不会对客户使用产生额外的负担。在后续的时间内,我们将推出的Oracle审核插件逐步完善规则的拼图。接下来的内容将对高频规则给出我们的理解。插件的本身开发之前已经做过介绍,开发文档参考:https://actiontech.github.io/sqle-docs-cn/3.modules/3.7_auditplugin/overview.html

文章主要分为以下四部分内容:

一、SQLE 项目介绍

二、规则介绍

三、规则列表

四、后续计划

一、SQLE 项目介绍

爱可生开源社区的 SQLE 是一款面向数据库使用者和管理者,支持多场景审核,支持标准化上线流程,原生支持 MySQL 审核且数据库类型可扩展的 SQL 审核工具。

SQLE 获取

类型

地址

版本库

文档

9000

发布信息

数据审核插件开发文档

社区版在线体验

http://124.70.158.246:8888/ 超级管理员:admin,密码:admin。

企业版在线体验

http://124.70.158.246:8889/ 用户:admin,密码:admin。

类型

地址

二、规则介绍

SQLE 根据规则的使用场景,将现有的规则分为以下几个类别:

  1. DDL规范类

该类规则主要是对表定义做了不同个维度包括字段,索引的各方面属性等方面进行限制,规则值可以根据自己业务场景进行配置,满足绝大部分表设计的规范。

  1. 查询类的规范

该类规则主要是支持一些常见可能会影响性能的语句,具体可根据自己的规范选择性开启关闭。

  1. 使用建议类的规则

该类规则涉及一些公司的数据库使用红线,禁止使用来或避免一些潜在的使用上或者维护上的风险。

  1. 命名规范

该类规则主要针对一些表名、字段名、索引名格式进行限制,主要作用还是作为统一命名标准提高可读性。

  1. 执行计划类

该类规则主要是在审核SQL时借助执行计划输出,解读执行计划特征,对于特定的影响性能的SQL给予用户提示。

三、规则列表

  1. 表建议使用主键;
  2. 表不建议使用外键;
  3. 索引个数建议不超过阈值;
  4. 表字段过多;
  5. 复合索引的列数量不建议超过阈值;
  6. 表不建议使用指定的字段类型;
  7. 表名、列名、索引名的长度不能大于指定字节;
  8. 数据库对象命名禁止使用关键字。
  9. 不建议使用select *;
  10. delete 和 update 语句,必须带where条件;
  11. 避免使用 having 子句;
  12. 不推荐使用子查询。
  13. 禁止除索引外的 drop 操作;
  14. 禁止使用视图;
  15. 禁止使用触发器;
  16. 单条SQL不建议过长。
  17. unique索引必须使用固定前缀;
  18. 普通索引必须使用固定前缀。
  19. 表关联存在笛卡尔积;
  20. 表关联嵌套循环层次过多;
  21. 表关联个数过多;
  22. 对大表进行全表扫描;
  23. 存在索引执行跳跃扫描;
  24. 对大索引执行全扫描。

四、后续计划

  • Oracle 审核插件将进行第二个预览版的开发,持续添加规则;
  • PostgreSQL 插件的开发正在进行中;
  • TiDB插件的开发将在6月份开始。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 一、SQLE 项目介绍
  • 二、规则介绍
  • 三、规则列表
  • 四、后续计划
相关产品与服务
云数据库 SQL Server
腾讯云数据库 SQL Server (TencentDB for SQL Server)是业界最常用的商用数据库之一,对基于 Windows 架构的应用程序具有完美的支持。TencentDB for SQL Server 拥有微软正版授权,可持续为用户提供最新的功能,避免未授权使用软件的风险。具有即开即用、稳定可靠、安全运行、弹性扩缩等特点。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档