MySQL之优化方案

一、数据库的优化

1、架构方面

读写分离:缓解数据库的压力。

主从备份:保障数据的安全。

2、库和表的优化

(1)分库和分表

①垂直分:

  分表:将一些不常用的字段放到另一个附属表中,通过外键进行关联。

  分库:将数据表进行分类,不同的数据表放入不同的库中。

②水平分:

  分表:将表中的数据 分为多张相同结构的表去存储,多张表中的数据加在一起才是完整的数据。

  分库:将表中的数据按照某种规则(如地市)进行拆分,来放到不同的库中。

水平分时主键值的冲突解决办法:

1.指定每个表的主键取值范围;

2.采用趋势递增算法;

3.根据时间+地理位置+天气信息;

通常来讲分库和分表一般是先垂直分,后水平分。因为垂直分更简单一些,也更符合逻辑思维。

而且水平拆分还会导致视图和关联查询不可用的问题。

(2)适当使用反范式

二、SQL语句的优化

1、查询时SELECT后面尽量不要使用*,需要什么字段的值就写什么字段。

2、查询时尽量都添加WHERE条件,避免全表查询。

3、适当添加索引。

4、SQL关键字尽量使用大写。

5、使用关键字IN替代OR方法查询。

6、更新数据时尽量避免修改索引字段的值。

7、更新数据时尽量避免修改经常被用作查询条件字段的数据。

8、注意字段值的数据类型不要写错,如果当前字段加了索引,而你的值类型写错了,会导致索引使用不上,从而造成了全表查询。

9、将复杂的查询语句拆分为简单的查询语句。

 

posted @ 2020-05-27 09:32  如心幻雨  阅读(297)  评论(0编辑  收藏  举报