MySQL学习笔记(四)性能优化2

来源:互联网 发布:海岛奇兵神庙升级数据 编辑:程序博客网 时间:2024/05/24 01:57

MySQL学习笔记(四)性能优化2

1.高效的模型设计

(1)适度冗余,让查询尽量减少Join

将别的表的数据拿出来一部分放在自己表里面,比如:发布信息表里面不仅保存用户ID,同时保存一份nickname

(2)大字段垂直拆分

把字段拆分出来放在另外一张表里面,比如:一些大字段,文章额内容,产品介绍等,还有访问不频繁的数据

(3)大表水平拆分

把表中不分数据拿出来单独放在一张表里面,比如:将置顶信息单独拿出来放在一张表里面,因为要经常访问

(4)统计表 准实时优化

定时统计,比如:比如积分排名啊。

2.合理的数据类型

1.通过更小的数据类型存放数据;

2.通过合适的数据类型加速数据的比较,如通过整数替代浮点数

3.规范的对象命名

一般来说,我个人建议需要注意以下一些方面:
1、数据库和表名应尽可能和所服务的业务模块名一致;
这样,在DBA 维护相关数据库对象的时候,新开发人员程序开发过程中,相关技术(或非技
术)人员整理业务逻辑和数据关系的时候,都能够非常容易理解其中的关系。
2、服务于同一子模块的一类表尽量以子模块名(或部分单词)为前缀或后缀;
对同类功能的表增加前缀或者后缀,也是让查看使用该表的各类人员能够很快的根据相关对象
的名称就联想到相应的功能,以及相关业务。不论是从维护角度,还是从使用角度来看都会带来非
常大的便利性。
3、表名应尽量包含与所存放数据相对应的单词;
这对于新员工来说尤其重要,要想尽快的熟悉数据,尽快了解相关业务,快速的定位数据库中
各表对应的数据意义是非常有帮助的。
4、字段名称也尽量保持和实际数据相对应
这一点的意义我想各位读者朋友应该都非常的清楚,每个表都会有很多的字段对应数据的各种
不同属性,要搞清楚各自代表的含义,除了完整规范的说明文档之外,命名清晰合理的字段名也是
一个有用的补充,而且更为直接。
5、索引名称尽量包含所有的索引键字段名或者缩写,且各字段名在索引名中的顺序应与索引键在
索引中的索引顺序一致,且尽量包含一个类似于idx 或者ind 之类的前缀或者后缀,以表名
其对象类型是索引,同时还可以包含该索引所属表的名称;
这样做最大的好处在于DBA 在维护过程中能够非常直接清晰的通过索引名称就了解到该索引大
部分的信息。
6、约束等其他对象也应该尽可能包含所属表或其他对象的名称,以表名各自关系
原创粉丝点击