影响数据库性能主要原因

  1. sql查询速度
    1. 1s 最大处理的 sql数目 为 QPS数量的最高点
    2. 避免 select * from 慢sql操作
  2. 服务器硬件 - 内存,CPU等
  3. 网卡流量
    1. 减少从服务器备份等对主服务器的网卡的占用
    2. 进行分级缓存
  4. 磁盘IO 数据库操作的底层就是磁盘IO
  5. 表数据太大,且该表的操作较为频繁 大表的索引建立 大表的表结构修改 - 长时间锁表 影响正常使用或者备份 解决方法
    1. 分库分表 - 分表主键 - 后端业务需要重新更改(可以加入中间件来处理)
    2. 分表分库后 跨分区查询和统计
    3. 可以对大表进行数据整理后,重新进行数据存放,并逐步替换大表
    4. 归档操作
  6. 事物 操作的定义规则 原子性,几条sql语句的组合,要么操作全部成功,要么全部失败(失败后会自动回滚) 一致性,事物在不同情况下操作成功后或者失败后是一致的 隔离性 四种隔离级别 1. 未提交读 - 脏读 未提交的数据-脏数据 未进行锁定-尽量不使用 并发性最高 2. 已提交读 - 提交后读 3. 可重复读 - 在事物提交过程中,可以读 innondb 引擎默认使用该 级别 4. 可串行化 - 全部执行完以后才可进行其他 并发最低 大事物 : 操作较多 ,运行时间较长 ,锁定时间太长,主从延迟 解决方法 : 减少操作 ,避免一次处理太多数据