什么影响了数据库性能
- sql查询速度
- 服务器硬件
- 网卡流量
- 磁盘IO
- 大表(10G)
- 大事务
大表对DDL操作的影响
- 建立索引需要很长时间
- 修改表结构需要长时间锁表
如何处理数据库中的大表
- 分库分表
把一张表分成多个小表
难点:
分表主键的选择
分表后跨分区数据的查询和统计 - 历史数据归档
难点:
归档时间点的选择
如何进行归档操作
大事务的影响
- 锁定太多的数据,造成大量的阻塞和锁超时
- 回滚所需的时间比较长
- 执行时间长,容易造成主从延迟
RAID
数据库索引优化策略
- 索引列上不能使用表达式或函数
- 前缀索引和索引列的选择性
- 联合索引
- 经常会被使用到的列优先
- 选择性高的列优先
- 宽度小的列优先
- 覆盖索引
- 优点
- 可以优化缓存,减少磁盘IO操作
- 可以减少随机IO,变随机IO操作变为顺序IO操作
- 可以避免对Innodb主键索引的二次查询
- 可以避免MyISAM表进行系统调用