mysql数据库开发规范

对规范的遵守可用二八原则,不要教条。为满足实际需求 可忽视部分规范。

1.索引规范
    *目标
     |--利用最小的索引成本找到需要的行记录

    *原则
     |--做前缀匹配
     |--选择区分度高的列做前缀索引列
     |--尽量使用重复索引 与where条件匹配
     |--避免重复索引
     |--索引列尽量包含 group by、order by所涉及的列
     `--查询结果比较大时 考虑索引覆盖

2.SQL规范
    *原则
    |--避免大事务 减少等待和竞争
    |--不要使用* 使用具体列名
    |--遇到分页查询 使用延迟关联解决(如果有打offset,可先选取ID,然后用主键id关联)
    |--避免多表查询 避免join
    |--IN元素禁止超过300个
    |--避免%前缀做模糊查询,不走索引
    |--不要一次更新大量数据(>30000)
    |--尽量使用union或in 代替or
    |--避免使用子查询 尽量使用join
    `--不使用负向查询 not in/like  使用in 反向代替

3.DDl规范
    *前提
    |--DDL会锁表,评估锁表给业务系统带来的影响

    *原则
    |--所有变更提前一天提交
    |--日常变更工作日下班后,重大变更时间沟通后确定
    |--所有DDL变更 需和研发沟通 审核后再提交
    `--所有新上线的表必须确定索引后才可上线

4.表的设计规范
    *原则
    |--使用innodb存储引擎,表的结尾必须是Engine=innodb Auto_increment=1 Default Charset=uft8mb4
    |--表必须带有物理主键
    |    |--id int(10) unsigned primary key not null auto_increment
    |    |--id bigint(19) unsigned primary key not null auto_increment
    |    |--int(M) M 表示最大显示宽度,和数字位数也无关系。int(3),int(8) 在磁盘上都是占用 4 btyes 的存储空间
    |    `--预估数据会无限增加的表,主键一律所以用Bigint(19) unsigned
    |--禁止使用字符做主键
    |--禁用联合主键
    |--不在数据库中存储图片 文件等大数据
    `--禁止使用分区表,定期创建分区表会给系统运维造成隐患

5.列设计规范
    *原则
    |--尽量减少存储空间
    |--尽量使用数值类型+unsigned
    |--禁用blob/text字段
    |--禁用NULL值,建议在定义时都加上默认值
    |    |--NULL字段很难查询优化
    |    |--NULL字段的复合索引无效
    |    `--NULL字段的索引需要额外空间
    |--禁止使用外键
    |--使用unsigned存储非负数
    `--varchar(N) N表示的是字符数不是字节数。
        |--Mysql中一个表中所有varchar字段最大长度和是65535个字节
        `--进行排序和创建临时表时,会使用N的长度申请内存

6.命名规范
    *规范
    |--库/表/列/索引名称一律小写
    |--命名不要超过32个字符
    |--索引
    |    |--格式为idx_列名缩写
    |    `--唯一索引 uniq_列名缩写
    `--做到见名知意
时间: 2024-11-05 14:06:04

mysql数据库开发规范的相关文章

Mysql 数据库开发规范

参考原文 详细内容看上文,提几点需要记住的要点. 库表基础规范 1.注释 每个表要添加注释,对 status 型需指明主要值的含义,如"0-离线,1-在线" 2.表的字段数量 单表字段数上限30左右,再多的话考虑垂直分表,一是冷热数据分离,二是大字段分离,三是常在一起做条件和返回列的不分离. 表字段控制少而精,可以提高IO效率,内存缓存更多有效数据,从而提高响应速度和并发能力,后续 alter table 也更快. 3.表的数据量控制在5000w以内 表字段数量不要超过20个,如果有需

数据库开发规范

数据库开发规范 数据库开发规范定义:开发规范是针对内部开发的一系列建议或规则. 开发规范本身也包含几部分:基本命名和约束规范,字段设计规范,索引规范,使用规范. 规范存在意义 保证线上数据库schema规范 减少出问题概率 方便自动化管理 规范需要长期坚持,对开发和DBA是一个双赢的事情 想想没有开发规范,有的开发写出各种全表扫描的SQL语句或者各种奇葩SQL语句,我们之前就看过开发写的SQL 可以打印出好几页纸.这种造成业务本身不稳定,也会让DBA天天忙于各种救火. 基本命名和约束规范 表字符

PHP+mysql数据库开发类似百度的搜索功能:中英文分词+全文检索(MySQL全文检索+中文分词(SCWS))

PHP+mysql数据库开发类似百度的搜索功能:中英文分词+全文检索 中文分词: a)   robbe PHP中文分词扩展: http://www.boyunjian.com/v/softd/robbe.html i.  Robbe完整版本下载:Robbe完整版本(PHP测试程序, 开发帮助文档, WinNT下php各版本的dll文件)下载: http://code.google.com/p/robbe(“谷歌”无法使用) b) SCWS(简易中文分词) 基于HTTP/POST的分词 : htt

MySQL数据库开发学习教程

MySQL数据库开发学习教程 一.数据库设计 数据库设计(一)--数据库设计http://blog.51cto.com/9291927/2087925 二.MySQL数据库开发基础教程 MySQL数据库开发基础教程目录如下: MySQL数据库基础(一)--MySQL数据库简介http://blog.51cto.com/9291927/2087947MySQL数据库基础(二)--MySQL字符集与乱码解析http://blog.51cto.com/9291927/2088254MySQL数据库基础

mysql数据库开发常见问题及优化

mysql 数据库是被广泛应用的关系型数据库,其体积小.支持多处理器.开源并免费的特性使其在 Internet 中小型网站中的使用率尤其高.在使用 mysql 的过程中不规范的 SQL 编写.非最优的策略选择都可能导致系统性能甚至功能上的缺陷. 恰巧就在前几天,本人所在公司的云事业部举办了一场关于 mysql 的技术交流会,其中一个 part 正是聚焦于开发过程中 mysql 数据库设计及使用的常见问题,并提出相关优化方案.根据会议内容并查阅相关资料,本人对这个 part 进行了一次小结,结合自

微信开发 BAE运平台和java语音,微信mysql数据库开发实例 --图文开发教程

持续更新中 BAE java开发mysql数据库 图文教程 BAE java语言开发mysql源代码下载: 目前微信开发.BAE开发.java开发.mysql开发的教程很多,但是没有一个详细的介绍基于BAE平台.java语言和mysql数据库的微信开发教程.所以写了该教程,希望能给大家一点启发. 教程分为: 1.申请BAE账户: 2.在BAE平台建立web服务器应用: 3.在BAE平台建立mysql数据库服务器应用: 4.使用eclipse开发基于BAE平台的处理微信消息的web服务器系统: 5

(DBA之路十)《深入浅出MySQL数据库开发优化与管理维护》的读书笔记

1>mysql的配置文件在/etc下的my.cnf 2)mysql服务是一系列后台进程,mysql数据库是一系列数据目录和数据文件 mysql数据库必须在mysql服务启动之后才可以进行访问 3)查看mysql服务的状态: netstat -nlp 4)启动/关闭服务 cd /usr/bin ./mysqld_safe & mysqladmin -uroot shutdown 5)PRM包安装的启动/关闭服务 service mysql start service mysql restart

《深入浅出MySQL数据库开发、优化于管理维护》基础篇学习笔记

MySQL数据库物理文件默认存放位置:C:\ProgramData\MySQL\MySQL Server 5.5\data\MySQL通过配置my.int的datadir属性来指定数据库的物理存放位置. 一.DDL语句:1.创建数据库:create database test; 2.删除数据库:drop database test; 3.描述表:desc emp; 4.删除表:drop table emp; 5.修改表:(1)修改表类型:alter table emp modify ename

传播知识,分享快乐--MySQL数据库开发与优化视频

?? 今天是9月11日,是一个值得纪念的日子,为无辜逝去的生命祈祷! 今年自开博以来整整六周年了,在广大网友的鼎力支持与协助下,博客写满500篇了. 为答谢广大网友的厚爱,本着传播知识,分享的理念,录制了MySQL开发与性能优化视频. 因时间关系,视频还未彻底完成,因此后续将继续完成全部录制工作. 以下为分享链接,欢迎大家拍砖及吐槽. http://pan.baidu.com/s/1pJux9eN 版权声明:本文为博主原创文章,未经博主允许不得转载.