zoukankan      html  css  js  c++  java
  • MySQL之优化方案

    一、数据库的优化

    1、架构方面

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

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

    2、库和表的优化

    (1)分库和分表

    ①垂直分:

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

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

    ②水平分:

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

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

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

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

    2.采用趋势递增算法;

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

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

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

    (2)适当使用反范式

    二、SQL语句的优化

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

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

    3、适当添加索引。

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

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

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

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

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

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

  • 相关阅读:
    第七周——Linux内核如何装载和启动一个可执行程序
    第十八章读书笔记
    第三章读书笔记
    第六周——分析Linux内核创建一个新进程的过程
    第五章读书笔记
    Linux内核分析——分析system_call中断处理过程
    第一二章读书笔记
    20145217《网络对抗》 Web安全基础实践
    20145217《网络对抗》web基础
    20145217《网络对抗》 MSF基础应用
  • 原文地址:https://www.cnblogs.com/lavender1221/p/12970515.html
Copyright © 2011-2022 走看看