关于数据库优化
Why
首先是为什么要优化数据库:
1.所有的数据都储存在数据库当中,数据库的数据非常庞大,对数据库中的数据进行CRUD时的速度影响系统的相应速度.
2.系统运行与数据量成正比,就会影响数据库的查询等操作
3.mysql最终的数据需要放在磁盘中
How
我们知道了为什么优化数据库后,聊一聊怎么优化数据库
从以下几个方面:
1.设计数据库时:是否使用三范式,是否使用合适的数据类型,是否使用合适的储存引擎
2.数据可扩展:是否分表分库,读写分离
3.sql语句优化
###关于三范式:
####1NF:字段原子性
原子的意思就是最小,不可再分,在我们设计字段时尽量把字段设计为不可在分字段,比如,name,id,sex等
####2NF:消除对主键的部份依赖
在满足1NF的基础上来设计,主键在表中是由特殊意义的存在,我们尽量不适用主键来进行业务的操作,比如一个学生表中将id设为主键,可以在设置一个student_id这样的字段,这样就不用使用id主键来进行操作了
3NF:添加外键
在满足2NF的基础上来设计,要求表中的每一字段都与主键有直接的联系,而不是间接联系.
**注意:**N范式要遵循在N-1范式的基础上进行设计
sql语句优化
1.数据查询时尽量使用具体字段,尽量避免使用"*"
2.尽量使用VARCHAR,这样会节省空间
3.尽量避免在where条件查询中使用or链接,or可能引起索引失效
4.使用explain分析sql是否为最优,主要是查看该sql是否添加了索引
5.使用合适索引,注意索引不要加在null,一斤含有or的字段
6.索引不要太多,在5个以内
7.避免使用!=或者<>,可能会使索引失效
8.尽量使用数值代替字符串,比如0–‘女’,1–‘男’,这样会提高查询效率
9.优化like语句,like语句中只有,'条件%'这种会使索引生效
10.批量插入,提高效率,避免批量删除
11.尽量不要多表查询,控制在三张表之内