MySQL 优化
一直对sql 优化的方面的知识不太熟悉,百度学习了一下
1,数据库优化的好处:
(1)随着应用程序的运行,数据库中的数据会越来越多,处理的时间会相应的变慢,使用sql优化能有效地解决。
(2)数据是存放在磁盘上的,读写的速度无法和内存相比。所以要使用sql优化。
(3)系统的吞吐量瓶颈往往出现在数据库的访问速度上,使用sql优化提高数据库的访问速度。
2,如何的优化
(1)在设计数据库时:对数据库表,字段的设计,存储的引擎。
(2)利用好MySQL自身提供的功能,索引。
(3)横向扩展:MySQL集群,负载均衡,读写分离
(4)sql 语句的优化。
3,在进行字段设计时尽量使用整形表示字符串;涉及到金额时会对数据的精度要求较高,小数的运算和存储存在精度问题(不能将所有小数转换成二进制)
4,尽可能使用not null
非null 字段的处理要比null 字段的处理高效些,且不需要在判断是否为null。null 在mysql中不好处理,存储需要额外空间,运算也需要特殊的运算符。
5,字段注释要完整,见名知意。
6,单表字段不宜过多
7,关联表的设计
外键 FOREIGN KEY 只能实现一对一或一对多的映射
一对多:使用外键
多对多:单独新建一张表将多对多拆分成两个一对多。
一对一: 一对一的表通常使用相同的主键或者增加一个外键字段。
8,数据库的三范式
第一范式:每个列都不可以再拆分。
第二范式:在第一范式的基础上,非主键列完全依赖于主键,而不能是依赖于主键的一部分。
第三范式:在第二范式的基础上,非主键列只依赖于主键,不能依赖于其他非主键。