qps: 每秒钟处理的查询量
数据库风险
大量的并发
数据库连接数被占满(max_connections默认为100)
超高的cpu使用率
因cpu资源耗尽而出现宕机
磁盘 io
磁盘IO性能突然下降(使用更快的磁盘设备)
其它大量消耗磁盘性能的任务计划(调整计划任务,做好磁盘维护)
网卡
风险: 网卡IO被占满
避免:
1. 减少从服务器的数量
2. 进行分级缓存
3. 避免使用 select * 进行查询
4. 分离业务网路和服务器网路
数据库性能的影响
大表
1. 单表记录超过千万行
2. 数据表文件超过10G
大表对查询的影响
慢查询
很难在一定的时间内过滤出所需要的数据
对ddl操作的影响
建立索引需要很长时间
1. mysql版本小于5.5建立索引会锁表
2. mysql版本大于等于5.5虽然不会锁表,但会引起主从延迟
修改表结构需要长时间锁表
1. 会造成长时间的主从延迟
2. 影响正常的数据操作
处理数据库中的大表
把一张大表分成多个小表
难点:
1. 分表主键的选择
2. 分表后跨分区数据的查询和统计
历史数据归档
好处: 减少前后端业务的影响
难点:
1. 归档时间点的选择
2. 如何进行归档操作
大事务对性能的影响
1. 事务是数据库系统区别于其它一切文件系统的重要特性之一
2. 事务是一组具有原子性的sql语句,或是一个独立运行的工作单元
原子性 atomicity
一组sql要么全部成功,要么全部回滚失败
一致性
数据库从一种一致性状态转换到另一种一致性状态
银行转账前后,总金额不能发生变化
####隔离性
一个事务对数据库中的数据进行修改,在提交完成前对于其它事务是不可见的
1. 未提交读 脏读 read uncommited
2. 已提交度 read commited
3. 可重复读 repeatable read
3. 可串行化 serializable
####持久性
一旦事务提交,则其所做的修改就会永久保存到数据库中,
此时即使系统崩溃,已经提交的数据也不会丢失
大事务
定义: 运行时间比较长,操作数据比较多的事务
风险:
1. 锁定太多数据,造成大量的阻塞和锁超时
2. 回滚时所需时间比较长
3. 执行时间长,容易造成主从延迟
1. 避免一次处理太多的数据
2. 移除不必要在事务中的select操作