- 1、本文档共7页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
MySQL设计规范
MySQL设计规范
MySQL设计规范 1
1. 数据库设计 1
1.1. 字段 1
1.1.1. 表和字段命名 1
1.1.2. 字段结构 2
1.2. SQL语句 2
1.3. 性能与效率 3
1.3.1. 定长与变长表 3
1.3.2. 运算与检索 3
1.3.3. 结构优化与索引优化 4
1.3.4. 查询优化 4
1.3.5. 兼容性问题和效率查询语句 6
1.3.6. 分享一些SQL语句 7
数据库设计
字段
表和字段命名
MySQL常见的表类型介绍:
A:MyISAM数据表又分为MyISAM Satic (静态MyISAM)、MyISAM Dynamic (动态MyISAM)、MyISAM Compressed (压缩MyISAM)。
B:InnoDB占用空间大,但是支持事务处理。
C:HELP表类型是放在内存中的速度很快。
所有数据表名称,只要其名称是可数名词,则必须以复数方式命名,例如:oms_members(用户表)、oms_serverlist(主机表);存储多项内容的字段,或代表数量的字段,也应当以复数方式命名,例如:params(parameters,自定义代码的参数个数)。
当几个表间的字段有关连时,要注意表与表之间关联字段命名的统一,如omsgroup表中的id与groupcorr表中的id。(举例)
代表id自增量的字段,通常用以下几种形式:
最常用的核心id,或经常在URL中进行调用的,尽量用简写的形式,例如tid、pid、uid;
有功能性作用,URL中偶尔用到的id,使用全称的形式,例如pluginid;
没有功能性作用,只为管理和维护方便而设的id,可以使用全称的形式,也可只将其命名为id。
字段结构
允许NULL值的字段,数据库在进行比较操作时,会先判断其是否为NULL,非NULL时才进行值的比对。因此基于效率的考虑,所有字段均不能为空,即全部NOT NULL;
预计不会存储非负数的字段,例如各项id、数量等,必须设置为UNSIGNED类型。UNSIGNED类型比非UNSIGNED类型所能存储的正整数范围大一倍,因此能获得更大的数值存储空间;
存储开关、选项数据的字段,通常使用tinyint(1)非UNSIGNED类型,少数情况也可能使用enum()结果集的方式。tinyint作为开关字段时,通常1为打开;0为关闭;-1为特殊数据,例如N/A(不可用);高于1的为特殊结果或开关二进制数组合;
任何类型的数据表,字段空间应当本着足够用,不浪费的原则,数值类型的字段取值范围见下表:
字段类型 存储空间(b) UNSIGNED 取值范围 tinyint 1 否 -128~127 是 0~255 smallint 2 否 -32768~32767 是 0~65535 mediumint 3 否 -8388608~8388607 是 0 Int 4 否 -2147483648~2147483647 是 0~4294967295 bigint 8 否 -9223372036854775808
~9223372036854775807 是 0
~18446744073709551615 SQL语句
所有SQL语句中,除了表名、字段名称以外,全部语句和函数均需大写,应当杜绝小写方式或大小写混杂的写法。例如select * from members;是不符合规范的写法。
很长的SQL语句应当有适当的断行,依据JOIN、FROM、ORDER BY等关键字进行界定。
通常情况下,在对多表进行操作时,要根据不同表名称,对每个表指定一个1~2个字母的缩写,以利于语句简洁和可读性。
如下的语句范例,是符合规范的:
$query = $db-query(SELECT s.*, m.*
FROM {$tablepre}sessions s, {$tablepre}members m
WHERE m.uid=s.uid AND s.sid=$sid); 性能与效率
定长与变长表
包含任何varchar、text等变长字段的数据表,即为变长表,反之则为定长表。
对于变长表,由于记录大小不同,在其上进行许多删除和更改将会使表中的碎片更多。需要定期运行OPTIMIZE TABLE以保持性能。而定长表就没有这个问题;
如果表中有可变长的字段,将它们转换为定长字段能够改进性能,因为定长记录易于处理。但在试图这样做之前,应该考虑下列问题:
使用定长列涉及某种折衷。它们更快,但占用的空间更多。char(n) 类型列的每个值总要占用n 个字节(即使空串也是如此),因为在表中存储时,值的长度不够将在右边补空格;
而varchar(n)类型的列所占空间较少,因为只给
您可能关注的文档
- MIMICS软件在人体骨组织重建方面的应用.doc
- MineADS操作流程.doc
- minRNA检测方法.doc
- minix操作系统分析.doc
- miRNA在肝细胞癌中的研究进展.doc
- miRNA的研究策略.docx
- miRNA的研究进展.doc
- MIMO雷达研究综述.doc
- MIS和GIS的区别与联系.doc
- MINI一种可减小变更影响范围的本体演化算法.doc
- 专题02+时事热点(精讲课件)2025年中考地理二轮复习讲练测(安徽专用).pptx
- 专题10+经济建设 2025年中考道德与法治二轮复习讲练测(广东专用).pptx
- 专题02+西游记【名著概览】+-+2025年中考语文必读名著演练.pptx
- 专题七+认识国家(课件)-【省心备考】2025年中考地理一轮复习优质课件.pptx
- 第22课《礼记》二则——《大道之行也》(课件)-2024-2025学年八年级语文下册同步备课精品资源.pptx
- 跨学科实践15:制作“龙骨水车”(课件)-2024-2025学年八年级物理下学期项目化课程案例.pptx
- 第13课_辽宋夏金元时期的对外交流(课件)2024-2025学年七年级历史下册同步教学课件.pptx
- 选择题专项讲解——综合类(课件)2025年初中道德与法治中考选择题练习.pptx
- 第21课《庄子》二则——《北冥有鱼》(课件)-2024-2025学年八年级语文下册同步备课精品资源.pptx
- 7.3+感受澳大利亚(第二课时)-2025学年七年级地理下册同步精品课堂(晋教版2024).pptx
最近下载
- 防洪度汛应急预案.doc
- 电商平台的售后服务提升与用户满意度策略.pptx
- 烟机设备操作工基础知识-第三章液压与气动传动知识鉴定要素.docx VIP
- 餐饮店厨房菜品生产制作规范.docx VIP
- 烟机设备操作工基础知识-第二章机械基础知识鉴定要素.doc VIP
- 健身房会计账务处理.docx VIP
- 地铁企业文化(张景霞) 任务一:认知企业文化的内涵 企业文化概述.ppt
- 农民工工资补充协议(2024版).docx VIP
- 部编版语文五年级下册第六单元教材解读大单元集体备课.pptx VIP
- 标准线路施工 手册基础 空客常用ASM,AWM手册线路符号和图例及INTRODUCTION前言介绍.pptx
文档评论(0)