mysql数据库优化之数据库结构优化

时间:2022-09-20 23:52:12

数据库结构 优化

选择合适的数据类型

数据类型的选择,重点在于合适儿子,如何确定选择的数据类型是否合适

1、使用可以存下你的数据的最小的数据类型

2、使用简单的数据类型,int要比varchar类型在mysql处理上简单

3、尽可能的使用not null定义字段

4、尽量少使用text类型,费用不可时最好考虑分表。

ip地址的存储,利用inet_aton(), inet_ntoa() 两个函数来进行转化成整型


数据库表的范式优化

表的范式化和反范式化

范式化是指数据库设计的规范,目前说到的范式化一般是指第三设计范式,也就是要求数据表中不存在非关键字段对任意候选关键字段的传递函数依赖则符合第三范式。

mysql数据库优化之数据库结构优化

分类描述依赖 分类, 分类依赖商品名称,分类描述是对于关键字商品名称存在传递依赖关系的,所以这张表不符合第三范式的要求的,存在一些问题,1、数据冗余、2、更新异常、3、删除异常、4、插入异常。

对表进行拆分,拆分成三张表

mysql数据库优化之数据库结构优化

反范式化 ,范式化多了 会增加表的关联,这样会影响查询的性能,所以要适当的增加冗余,已达到优化查询效率的目的,反范式化是以空间换时间的一种方式。较少关联一些表。


表的垂直拆分

所谓的垂直拆分,就是把原来一个有很多列的表拆分成多个表,这解决了表的宽度问题,通常垂直拆分可以按照以下原则进行:1、把不常用的字段单独存放到一个表中,2、把大字段独立存放在一个表中,3、把经常一起使用的字段放到一起。


表水平拆分

表的水平拆分是为了解决单表的数据量过大的问题,水平拆分的表每个表结构都是完全一致的。

遇到的问题  1、跨分区表进行数据查询,2、统计及后台报表操作。