mysql设计规范..docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
mysql设计规范.

Mysql设计规范 模型设计流程 设计工具 待定 命名规范 基本原则 数据模型中的表(Table)、字段(Column)、索引(Index)、视图(View)等数据库对象均应遵循以下命名规范: 命名全部采用小写字母 名称的各部分之间用下划线_连接 命名应采用能够准确反映对象中文含义的英文单词或英文缩写,尽量不使用汉语拼音(中英文命名对照表详见附录A) 命名长度一般不超过32个字符 名称较长时使用英文缩写,相同缩写含义应相同 禁止使用mysql保留字 默认使用 innodb 存储引擎,使用其他引擎必须注明缘由 使用utf8字符集 表必须有主键,推荐使用UNSIGNED自增列作为主键 避免使用存储过程、触发器、视图、自定义函数等 表名 表名构成:模块名前缀 + 表主体名 + 表后缀(可选) 模块名前缀:表归属模块 表主体名:准确表达表含义,尽量使用英文全称,表名较长时使用英文缩写 表后缀:可选项,表示关系(rlt)、明细(dtl)、周期(mm/dd)等表的类型 字段名 字段名需准确表达字段的含义 可根据情况增加表名前缀 不同表中相同字段名的含义、字段类型、取值含义应相同 不使用数据库关键字 尽量使用英文缩写 尽量不使用单个单词(约定的通用字段除外) 字段全部定义为 NOT NULL 主键名 主键名构成:pk_ + 表名 名称较长时使用表名缩写减小长度,注意表名缩写的唯一性 索引 索引命名 索引名称全部使用小写 非唯一索引按照“idx_字段名称_字段名称[_字段名称]”进行命名 唯一索引按照“uq_字段名称_字段名称[_字段名称]”进行命名 建立索引规范 唯一索引由 3 个以下字段组成并且字段都是整形时,使用唯一索引作为主键。没有唯一索引或唯一索引不符合上述条件时,使用自增 id 作为主键。注意唯一索引不和主键重复 单张表的索引数量控制在字段数的 20%以内,至多 5 个,索引数量过多会导致写入性能 的显著下降 合理创建复合索引。首先要避免冗余,ix_a_b_c 相当于同时创建了 ix-_a,ix_a_b,ix_a_b_c 三个索引;其次要避免索引过大,建议最大 4 列复合,列数过多很难提升索引的区分度,反而降低索引的性能 合理使用覆盖索引 对于长度大于 100 的 varchar 字段建立索引时,使用其他方法 使用 EXPLAIN 判断 SQL 语句是否合理使用索引,尽量避免 extra 列出现 FILE SORT,USINGTEMPORARY 索引不只用于 select 查询,update 和 delete 语句也需要根据 where 条件合理设计索引 where 条件中的非等值条件(IN,BETWEEN,,=,,=)会导致后面的条件无法使用索引 视图 视图名构成:v_ + 模块名前缀 + 视图主体名 + 后缀(可选) 数据类型规范 数值型 存储精确浮点数使用 DECIMAL,替代 FLOAT 和 DOUBLE; 根据字段长度选择合适的字段类型,如数字类型有 tinyint,smallint,mediuint,int,bigint 五种类型,分别占用 1byte,2byte,3byte,4byte,8byte。需要特别注意,int(10)和 int(2)无区别,应该采用 tinyint(2)替代 int(2); 尽量使用 tinyint 代替 enum 和 set 类型,减少后台类型转换; 使用UNSIGNED存储非负数值 字符型 Varchar(N)中,N 表示的是字符数不是字节数,如 varchar(255),可以最大存储255 个汉字。N 值应尽可能小,单表 varchar 字段最大长度为 65536 个字节,在排序和创建临时表等内存操作时,会使用 N 值来申请内存,而非存储值的实际长度 日期时间型 存储年使用 year 类型,存储日期使用 date 类型 存储日期使用 date 类型 存储时间(精确到秒)使用timestamp 类型, 而非 datetime 类型, 因为 timestamp 使用 4 个字节,而 datetime 使用 8 个字节 其它数据类型 使用 int unsigned 存储 IP 地址,通过 MySQL 函数 inet_ntoa 和inet_aton 来进行转化 避免使用 text、blob 字段类型 SQL 语句设计 使用 prepared statement,可以提升性能并且避免 SQL 注入 降低 SQL 的复杂度,把 MySQL 尽量当做存储使用 避免在 SQL 语句中进行数学运算、函数计算、逻辑判断等操作 避免多表 join,尽量拆分成多条查询。如无法避免,在 join 表时应

文档评论(0)

sa74g0hj + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档