影响数据库的因素:
- sql查询速度
- 服务器硬件
- 网卡流量
- 磁盘IO
超高的QPS和TPS
风险:效率低下的SQL
(不支持多cpu并发运算)
QPS:每秒钟处理的查询量
大量的并发和超高的CPU使用率
风险:
大量的并发:
数据库连接数被占满 (max_connections默认100)
超高的CPU使用率:
因CPU资源耗尽而出现宕机(跌宕起伏)
磁盘IO
风险:
磁盘IO性能突然下降
解决:使用更快的磁盘设备,如SSD
其他大量消耗磁盘性能的计划任务
(调整计划任务,做好磁盘维护)
网卡流量
风险:网卡IO被占满
(1000Mb/8 约等于 100MB)
如何避免无法连接数据库的情况:
1.减少从服务器的数量
2.进行分级缓存
3.避免使用“select *” 进行查询
4.分离业务网络和服务器网络
未提交读(read uncommited):
是数据进行了修改,即使还未提交,对其他事务也还是可见的。(事务可以读未提交的数据,也称为脏读)。不建议使用,会造成很多逻辑上的问题。
已提交读(read commited)
一个事务在未提交前,对数据所做的修改,对其他事务是不可见的
可重复读(repeatable read) 默认的隔离级别
一个事务已经提交对数据所做的修改后,对其他事务仍然不可见
可串行化(serializable)