Java技术笔记:数据库的优化技巧分享

对于一个后端开发人员,尤其是Java工程师来说,掌握数据库优化技巧会让其更具优势。事实上,关于数据库优化有不少资料和方法,只要你能取其精华去其槽粕,就可以基本掌握。接下来的文章中,我就给大家简单介绍一下数据库优化相关知识。
Java技术笔记:数据库的优化技巧分享

1、SQL以及索引的优化

首先要根据需求写出结构良好的SQL,然后根据SQL在表中建立有效的索引。但是如果索引太多,不但会影响写入的效率,对查询也有一定的影响。

2、合理的数据库是设计

根据数据库三范式来进行表结构的设计。设计表结构时,就需要考虑如何设计才能更有效的查询。

数据库三范式:

第一范式:数据表中每个字段都必须是不可拆分的最小单元,也就是确保每一列的原子性;

第二范式:满足一范式后,表中每一列必须有唯一性,都必须依赖于主键;

第三范式:满足二范式后,表中的每一列只与主键直接相关而不是间接相关(外键也是直接相关),字段没有冗余。

注意:没有最好的设计,只有最合适的设计,所以不要过分注重理论。三范式可以作为一个基本依据,不要生搬硬套。

3、根据场景合理地反规范化:

A:分割表。

B:保留冗余字段。当两个或多个表在查询中经常需要连接时,可以在其中一个表上增加若干冗余的字段,以 避免表之间的连接过于频繁,一般在冗余列的数据不经常变动的情况下使用。

C:增加派生列。派生列是由表中的其它多个列的计算所得,增加派生列可以减少统计运算,在数据汇总时可以大大缩短运算时间。

4、数据库五大约束:

A:PRIMARY key:设置主键约束;

B:UNIQUE:设置唯一性约束,不能有重复值;

C:DEFAULT 默认值约束

D:NOT NULL:设置非空约束,该字段不能为空;

E:FOREIGN key :设置外键约束。

5、字段类型选择:

A:尽量使用TINYINT、SMALLINT、MEDIUM_INT作为整数类型而非INT,如果非负则加上UNSIGNED

B:VARCHAR的长度只分配真正需要的空间

C:使用枚举或整数代替字符串类型

D:尽量使用TIMESTAMP而非DATETIME

E:单表不要有太多字段,建议在20以内

F:避免使用NULL字段,很难查询优化且占用额外索引空间

数据库优化一方面是找出系统的瓶颈,提高数据库的整体性能,而另一方面需要合理的结构设计和参数调整,以提高用户的相应速度,同时还要尽可能的节约系统资源,以便让系统提供更大的负荷。

以上就是我分享的数据库优化的相关知识。如果你想了解更多数据库优化技巧,可以关注我,定期发布技术热点和行业趋势文章。