一、数据库的优化
1、架构方面
读写分离:缓解数据库的压力。
主从备份:保障数据的安全。
2、库和表的优化
(1)分库和分表
①垂直分:
分表:将一些不常用的字段放到另一个附属表中,通过外键进行关联。
分库:将数据表进行分类,不同的数据表放入不同的库中。
②水平分:
分表:将表中的数据 分为多张相同结构的表去存储,多张表中的数据加在一起才是完整的数据。
分库:将表中的数据按照某种规则(如地市)进行拆分,来放到不同的库中。
水平分时主键值的冲突解决办法:
1.指定每个表的主键取值范围;
2.采用趋势递增算法;
3.根据时间+地理位置+天气信息;
通常来讲分库和分表一般是先垂直分,后水平分。因为垂直分更简单一些,也更符合逻辑思维。
而且水平拆分还会导致视图和关联查询不可用的问题。
(2)适当使用反范式
二、SQL语句的优化
1、查询时SELECT后面尽量不要使用*,需要什么字段的值就写什么字段。
2、查询时尽量都添加WHERE条件,避免全表查询。
3、适当添加索引。
4、SQL关键字尽量使用大写。
5、使用关键字IN替代OR方法查询。
6、更新数据时尽量避免修改索引字段的值。
7、更新数据时尽量避免修改经常被用作查询条件字段的数据。
8、注意字段值的数据类型不要写错,如果当前字段加了索引,而你的值类型写错了,会导致索引使用不上,从而造成了全表查询。
9、将复杂的查询语句拆分为简单的查询语句。