数据库优化

什么影响了数据库性能

  • sql查询速度
  • 服务器硬件
  • 网卡流量
  • 磁盘IO
  • 大表(10G)
  • 大事务

大表对DDL操作的影响

  • 建立索引需要很长时间
  • 修改表结构需要长时间锁表

如何处理数据库中的大表

  • 分库分表
    把一张表分成多个小表
    难点:
    分表主键的选择
    分表后跨分区数据的查询和统计
  • 历史数据归档
    难点:
    归档时间点的选择
    如何进行归档操作

大事务的影响

  • 锁定太多的数据,造成大量的阻塞和锁超时
  • 回滚所需的时间比较长
  • 执行时间长,容易造成主从延迟

RAID

数据库索引优化策略

  1. 索引列上不能使用表达式或函数
  2. 前缀索引和索引列的选择性
  3. 联合索引
  • 经常会被使用到的列优先
  • 选择性高的列优先
  • 宽度小的列优先
  1. 覆盖索引
  • 优点
  • 可以优化缓存,减少磁盘IO操作
  • 可以减少随机IO,变随机IO操作变为顺序IO操作
  • 可以避免对Innodb主键索引的二次查询
  • 可以避免MyISAM表进行系统调用