`
terry0501
  • 浏览: 316502 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

SQL 管理规范

 
阅读更多
一、库表规范
1.  所有库、表、字段一律采用小写字母加下划线的命名方式,禁止大写字母和汉语拼音等其他命名,命名 简洁明了,见名知义,长度控制在32字符以内;
        正例:db_fund,tbl_order_detail,user_id
        反例:TBL_ORDER,yonghuming,field1,user_Name
2.  所有表均采用innodb存储引擎;
      mysql特点支持众多的存储引擎,如myisam,innodb,tokudb
      innodb 支持事物,健壮,5.5之后mysql默认使用的存储引擎
3. 所有表的字符集使用utf8,如需要使用utf8mb4,可单独申请;
      原因:utf8万国符,支持中文 占用空间:latin1< utf8 < utf8mb4
4. 所有表、字段都需要添加注释;
     原因:方便维护
     例子:status ‘0-未支付,1-已支付’
5. 每个表必须有主键;
    采用连续自增id的方式,利于数据的插入
6. 所有表字段设为not null,设置default值;
    已经存在的数据可以update到默认值

7. 禁止使用外键约束;

8.字段的选用原则;
    1)选用的最短小数据类型:运算快,占用空间小 1.ip地址转换成int,而不是char(15)
    2)金额类型选用decimal 更精确
    3)使用tinyint来代替enum,boolean 形如status ,sexual等字段
    4)datetime和timestamp 时间戳优先选择timestamp 有些只要日期的字段可以选择date

9. 控制表字段的数量,表的字段太多可考虑分拆成多个小表,建议数量控制在30以内;
10. 禁止在数据库中保存图片,视频等信息。


二、索引规范

1.索引的命名;
    1) 主键索引 :pri_字段名称_字段名称(字段太长可用缩写)
    2) 唯一索引 :uiq_字段名称_字段名称(字段太长可用缩写)
    3) 一般索引 :idx_字段名称_字段名称(字段太长可用缩写)
    正例:idx_user_id
    反例:index_a,idx_1

2. 优先在经常出现在where条件后的字段上建立索引;
     例如 经常使用时间范围的查询,就可以在create_time 等字段上建立索引;
3. 禁止在选择性低的列上建立索引;
     例如 不要sex,status等字段上建立索引
4. 索引中的字段控制在5个以内;

5. 制单表的索引的数量,建议:5个以内;
     原因:索引加快查询速度,但索引本身需要占用空间,而且会降低插入删除更新的速度

6. 避免重复的索引;
     原因:重复的索引浪费空间,增加负担,毫无益处。
7. 多列索引要把索引选择性高的放在前面,注意最左前缀原则;
    原因:把选择性高的列放在前面,可以快速的排除大量数据
    idx_create_time_status(createtime,status,sex)
   √ select x,xfrom table where create_time=
   √ select x,xfrom table where create_time= ,status=
   √ select x,x from table where create_time=,status=,sex=
   × select x,x from table where status=
   × select x,x from table where statu= ,sex=
   × select x,x from table where sex=


三、sql语句规范

1.禁止 select * 语句,只读取需要用到的字段;
2. 禁止在where条件的列上使用函数;
   原因:函数的使用会是所在列的索引失效
   select x from table where LEFT(col_name,4)='acbs'

3. 避免形如like '%xxx'的语句,可以like 'abc%';

4. 多表连接的执行的sql语句必须在每个字段前加上表前缀;
   √ select a.col1,b.col2,c.col3 from a,b,c where a.id=b.id and b.uid=c.uid;
   × select col1,col2,col3 from a,b,c where a.id=b.id and b.uid=c.uid

5. 避免where字段的隐式转换;
   例如 整数列的和字符串的比较: select x from table where col_int_type='xxx';

6. union all 替代 union;
   不需要排序,减少性能消耗

7. 用union替换or;
    如:select a from table where a=1 or c=1
   改为
        select a from table where a=1 union all
        select a from table where c=1

8. 拒绝大事务;
   例如:在一个事务里进行多个select,多个update,如果是高频事务,会严重影响MySQL并发能力,因为事务持有的 锁等资源只在事务rollback/commit时才能释放。但同时也要权衡数据写入的一致性。

四、行为规范

1. 禁止在dba不知情的情况下从线上数据库导出数据;
2. 需要执行sql脚本的文件统一命名: 数据库名称 +日期 +编号如 :fund1106-1.sql,sql语句单独成行,除了注释不得有任何其他中文,标点符号等,文件的格式为sql,sql脚本需要包含回滚语句;
3. 复杂sql语句上线前审核;
4. 线上刷数据需要通过审核,才能执行;
5. 任何数据库变更必须通知dba;
6. 使用navicat 、mysql workbench 等mysql客户端在完成操作后,关闭连接;
7. 数据库遇到故障请勿盲目操作,请联系dba。

分享到:
评论

相关推荐

    SQL编写规范.doc

    SQL(Structured Query Language)是一种用于管理和处理关系型数据库的标准语言。为了确保SQL脚本的质量、可读性和执行效率,制定一套标准的SQL编写规范至关重要。本文档详细阐述了一套适用于东方口岸科技有限公司...

    DBA对Oracle SQL编写规范的总结

    本文档由一位经验丰富的数据库管理员(DBA)撰写,旨在总结一系列最佳实践,帮助开发人员在编写SQL语句时更加高效、准确。 #### 二、SQL语句基本编码规范 ##### 2.1 英文字母编写 - **规范要求**:SQL语句中除存储...

    编码规范--SQL语言规范

    综上所述,《SQL编码规范》提供了全面而细致的指导原则,涵盖了从命名到执行、从性能优化到安全保障的各个环节,旨在提升SQL程序的质量与效能,是所有从事数据库开发与管理工作的工程师不可或缺的参考指南。...

    HIVE-SQL开发规范.docx

    【秘密】Hive SQL 开发规范 Hive作为Hadoop生态系统中的重要组件,为企业提供了对大规模数据集的高效处理和分析能力。它允许用户通过类似于SQL的查询语言(HiveQL)来操作分布式存储的数据,简化了MapReduce编程...

    sql99规范文档

    这一规范对SQL进行了全面的扩展和改进,旨在提高数据库管理系统(DBMS)的灵活性、功能性和可移植性。SQL99规范文档包含了SQL语言的各个方面,包括数据定义、数据操作、查询、事务处理以及并发控制等核心内容。 1. ...

    sql2003标准 sql2003标准

    实际应用中,开发者和数据库管理员需要根据具体需求,深入理解和掌握这些特性,以实现高效、安全和可靠的数据管理。在学习和使用SQL2003时,建议结合实际的数据库系统,通过编写和执行查询、创建表结构、管理用户...

    SQL编码规范标准版

    ### SQL编码规范标准版知识点详解 #### 一、SQL编码规范概述 **SQL编码规范**是一种标准化的方法,用于指导数据库的设计、编码以及开发过程。它旨在确保数据库系统的高质量、高可读性和高可维护性。该文档详细介绍...

    仓库管理系统SQL.doc

    3. 仓库管理员表:包含管理员编号(主键)和管理员姓名。 4. 仓库表:包含仓库编号(主键)、仓库名称、仓库面积和管理员编号(外键)。 5. 客户表:包含客户编号(主键)、客户姓名、性别和电话。 6. 供应表:货物...

    C#学生宿舍管理系统SQL版.

    《C#学生宿舍管理系统SQL版》是...综上所述,《C#学生宿舍管理系统SQL版》是一个结合了C#编程技术、SQL Server数据库管理和软件工程理念的实用系统,它不仅提升了宿舍管理的规范性,也为教育信息化建设贡献了一份力量。

    SQL 销售管理系统

    本文将深入探讨与"SQL 销售管理系统"相关的知识点,以及如何结合Visual Basic进行应用。 首先,SQL(Structured Query Language,结构化查询语言)是用于管理和处理关系型数据库的标准编程语言。在销售管理系统中,...

    MS SQLSERVER数据库开发规范.docx

    * 基本管理规范:数据库的基本管理规范包括数据库的创建、修改和删除等操作。例如,数据库的创建应该由授权人员进行,数据库的修改应该经过审核和批准。 * SQL、T-SQL 的规范:SQL 和 T-SQL 是数据库开发中最重要的...

    数据库SQL编程规范

    在数据库管理与开发中,遵循一套合理的SQL编程规范至关重要。良好的编程规范不仅能提升代码的可读性和维护性,还能提高团队协作效率,减少潜在错误。本文将全面介绍Transact-SQL编程规范,主要包括基本原则、基本...

    IBM的sql开发规范

    【IBM的SQL开发规范】是IBM为SQL编程制定的一系列最佳实践和标准,旨在提高代码的可读性、性能和安全性。以下是对这些规范的详细解释: 1. **SQL书写规范**: - **全部使用大写字母**:这是因为Oracle在解析SQL时...

    SQL规范化查询语句练习题

    SQL规范化查询语句是数据库设计和管理中的核心技能,它涉及到如何有效地组织数据,避免数据冗余和不一致性。在数据库领域,规范化的查询语句是优化数据存储和提高查询效率的关键。本练习题旨在帮助你深入理解并熟练...

    鲜花管理系统c#+sql

    管理员可以设置操作员的登录权限,限制他们访问特定的功能或数据,防止误操作和数据泄露。 【标签】:“sql+c#”表明该系统使用了Microsoft的C#语言进行前端开发,结合SQL(可能是SQL Server)作为后台数据库,这种...

    ASP+SQL信息管理系统

    ASP+SQL信息管理系统是一种基于Web的应用程序开发框架,用于构建高效、可扩展的企业级信息管理解决方案。该系统结合了Active Server Pages(ASP)技术、SQL数据库管理和Internet Information Services(IIS)服务器...

    SQL_92和SQL_2003标准

    SQL是Structured Query Language的缩写,它是用于管理关系数据库的标准编程语言。SQL_92和SQL_2003是SQL语言的两个重要版本标准,它们定义了SQL的语法、功能和行为,以确保不同数据库管理系统(DBMS)之间的兼容性和...

    2003SQL标准规范 - 副本.zip

    《2003SQL标准规范》是一份针对SQL数据库语言的重要文档,对于SQL的学习者和使用者来说,理解并掌握这份规范...无论你是数据库管理员、开发人员还是数据分析人员,理解并掌握SQL:2003规范都将极大地提升你的专业技能。

    SQLServer学校家教管理系统

    在家教管理系统中,可能根据用户角色(如管理员、教师、家长、学生)设定不同的访问权限,保证数据的安全。 总结,SQLServer学校家教管理系统通过巧妙运用SQLServer数据库的各项功能,实现了高效、安全的家教服务...

    SQL课程设计(学生成绩管理系统)

    【SQL课程设计——学生成绩管理系统】 在信息技术领域,数据库管理是至关重要的组成部分,而SQL(Structured Query Language)则是管理关系型数据库的标准语言。在这个“SQL课程设计”中,我们聚焦于一个具体的应用...

Global site tag (gtag.js) - Google Analytics