- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
MySQL数据库设计、优化
叶金荣
微博:@yejinrong
微信公众号:MySQL中文网
QQ群:125572178、272675472
2013.08.20
提纲
规范
基础规范
命名规范
库表规范
字段规范
索引规范
开发环境
优化
2
可整理ppt
规范
基础规范
全部使用InnoDB引擎,MyISAM适用场景非常少
字符集:latin1=utf8=gbk
用数据库来持久化存储以及保证事务一致性,不是运算器
读写分离,主库只写和少量实时读取请求
采用队列方式合并多次写请求,持续写入,避免瞬间压力
超长text/blob进行垂直拆分,并先行压缩
冷热数据进行水平拆分,LRU原则
快速更新大数据表禁止直接运行count(*)统计
3
可整理ppt
规范
基础规范
单表行记录数控制在1000万以内,行平均长度控制在16KB以内,单表20GB以内
单实例下数据表数量不超过2000个,单库下数据表数量不超过500个
禁止开发环境直连线上生产环境
最少授权,只授予最基础权限需求
压力分散,在线表和归档表(日志表)分开存储
线上数据库和测试数据库尽可能保持一致
禁止明文存储机密数据,需至少两次加密(部分数据可逆运算)
4
可整理ppt
规范
命名规范
涉及系统目录、文件、数据库、表、字段名
强烈建议只用小写字符、数字、下划线组合
命名长度不超过32个字符
不使用select、show、update等保留字
全英文或全中文,言之有意,不要半洋半中
临时用加上tmp/temp前缀/后缀
统计表加上stat/statistic前缀/后缀
历史归档加上完整日期,例如mkdir-p/backup/user_log/2013/08
createtableuser_detail
createtablexxx_1234
createtableaccess_log5
可整理ppt
规范
库表规范
少用分区表等未完善的新特性
不对InnoDB引擎表做在线实时count(*)统计
分库、分表策略
以用户ID=123456为例,取N/100%10=4,取N%10=6
最大10个分库,10个分表,共100个分表
则分配到DB_04库下,分表TABLE_06中
采用预存映射关系动态分配更灵活,不受分表算法变化而影响,但数据库开销大
6
可整理ppt
规范
字段规范
用timestamp(4字节intunsigned,且效率非常高)记录时间,而非使用date/datetime/char/varchar
IPV4地址采用4字节intunsigned,内置INET_ATON/INET_NTOA快速转换,采用char至少15字节
性别、状态、是否、小范围枚举使用tinyint(0~255,或-128~127)
Signed
Unsigned
Tinyint
-128~127
0~255
Samllint
-32768~32767
0~65535
Mediumint
-8388608~8388607
0Int
-2147483648~2147483647
0~4294967295
Bigint
-9223372036854775808~9223372036854775807
0~18446744073709551615
7
可整理ppt
规范
字段规范
char(10)VSvarchar(10)
尽可能不使用text/blob类型
存储字符型数据时,尽可能先压缩或者序列化
注意字符集问题,server=database(trigger、storedprocedure、eventscheduler)=table=column
不要同时指定字符集(characterset)和校验集(collectset),避免出现和默认对应关系不一致
Value
CHAR(4)
StorageRequired
VARCHAR(4)
StorageRequired
4bytes
1byte
ab
ab
4bytes
ab
3bytes
abcd
abcd
4bytes
abcd
5bytes
abcdefgh
abcd
4bytes
abcd
5bytes
8
可整理ppt
规范
字段规范
显式指定自增int/bigintunsignednotnull作为主键
杜绝使用UUID/HASH/MD5类型作为主键
无须预留,越短越好,此处无须18cmO(∩_∩)O哈哈~
MySQL5.5以上,OnlineDDL越来越方便
显式约束:NOTNULL
9
可整理ppt
规范
SQL规范
简化每一条SQL
您可能关注的文档
最近下载
- 2025至2030年中国苎麻数据监测研究报告.docx
- 桶混助剂KAO ADJUVANT A-134对草甘膦的增效作用及增效机理研究.pdf VIP
- 全国IP地址IP地址各省IPIP实用.doc
- 计量经济学题库及答案.pdf VIP
- 全媒体运营师职业技能竞赛题库及答案(751-800多选题).docx VIP
- 专题06 仿写与句式变换-2022-2023学年三年级语文上册寒假专项提升(部编).docx VIP
- 国家能源集团宁夏煤业公司招聘笔试题库2024.pdf
- 浅析明清瓷器上的“净土莲花”图 .pdf VIP
- 《精神焦虑症的自救》.pdf
- Dell戴尔Precision 3680 Tower Owner's Manual说明书用户手册.pdf VIP
原创力文档


文档评论(0)