常用名词:
1.QPS:用来衡量域名系统服务器的机器的性能的名词,即每秒中查询多少次。
计算关系:
QPS = 并发量 / 平均响应时间
并发量 = QPS * 平均响应时间
2.TPS:每秒传输事务处理个数,即服务器每秒的事务数。TPS包括一条消息入和一条消息出,加上一次用户数据访问。
3.并发量:同一时间处理的请求的数量。注意:此时并不等于同时连接数。
4.磁盘IO:注意:不要在主库上进行数据库备份。
1.一般数据库架构的问题
只有一个主服务器
没有主从复制的主键,一旦主服务器故障,无法自动切换,只能手动在从服务器中选择数据最新的一台服务器作为主服务器,再将数据同步到从服务器上。繁琐且耗时长。
2.什么影响了数据库服务器的性能
SQL查询速度
服务器硬件
网卡流量:网卡IO被占满。
如何避免无法连接数据库的情况:
减少从服务器的数量
进行分级缓存
避免使用select * 进行查询
分离业务网络和服务器网络
磁盘IO:性能突然下降(使用更快的磁盘设备),其他大量消耗磁盘性能的计划任务(调整计划,做好磁盘维护)
大量的并发和超高的CPU使用率:大量的并发导致数据库连接数被占满。超高的CPU使用率导致因CPU资源耗尽而出现宕机。
大表对查询的影响:
慢查询:很难在一定的时间内过滤出所需要的数据
大表对DDL操作的影响:建立索引需要很长的时间。
风险1:MYSQL版本<5.5 建立索引会锁表。
风险2:MYSQL版本>=5.5 虽然不会锁表但会引起主从延迟
3.如何处理数据库中的大表
分表
难点:
分表主键的选择
分表后跨分区数据的查询和统计
4.大事务带来的问题
什么是事务:
1.事务是数据库系统区别于其他一切文件系统的重要特征之一
2.事务是一组具有原子性的SQL语句,或是一个独立的工作单元
事务的特性:
原子性:一个事务必须被视为一个不可分割的最小工作单元,整个事务中的所有操作要么全部提交成功,要么全部失败回滚,对于一个事务来说,不可能只执行其中的一部分操作。
一致性:是指事务将数据库从一种一致性状态转换到另外一种一致性状态,在事务开始之前和事务结束后数据库中数据的完整性没有被破坏。
隔离性:隔离性要求一个事务对数据库中数据的修改,在未提交完成前对于其它事务是不可见的。
SQL标准中定义的四种隔离级别(隔离性由低到高,并发性由高到低):
未提交读
已提交读
可重复读
可串行化
持久性:一旦事务提交,则其所作的修改就会永久保存到数据库中。此时即使系统崩溃,已经提交的修改数据也不会丢失。
什么是大事务:
1.定义:运行时间比较长,操作的数据比较多的事务
2.风险:
锁定太多的数据,造成大量的阻塞和锁超时
回滚时所需时间比较长
执行时间长,容易造成主从延迟
3.如何处理大事务
避免一次处理太多的数据
移除不必要在事务中的select操作
网友评论