首页 > 技术文章 > 1.影响mysql数据库性能因素

li-jing 2019-04-01 19:26 原文

影响数据库的性能因素

1.超高的QPS和TPS:

  (1)QPS:每秒查询率(Query Per Second) 

  每秒查询率QPS是对一个特定的查询服务器在规定时间内所处理流量多少的衡量标准。即每秒的响应请求数,也即是最大吞吐能力。

  (2)TPS:每秒事务处理量(Transaction Per Second)

  每秒钟系统能够处理的交易或事务的数量。它是衡量系统处理能力的重要指标。

2.大量的并发和超高的cpu使用率:

  (1)大量的并发:数据库连接数占满(max_connections默认100)。

  (2)超高的cpu使用率:因cpu资源耗尽而出现宕机。

3.磁盘IO:

  (1)磁盘IO性能突然下降(使用更快的磁盘设备)。

  (2)其他大量消耗磁盘性能计划任务(调整计划任务,做好磁盘维护)。

4.网卡流量(网卡被占满(1000Mb/s)):

  如何避免无法连接数据库情况:

  (1)减少从服务器的数量

  (2)进行分级缓存

  (3)避免使用select进行查询

  (4)分离业务网站和服务网站

5.大表问题(记录行数巨大,单表超过千万行;表数据文件巨大,表数据文件超过10G):

  (1)大表对查询的影响:

    慢查询:很难在一定时间内过滤出所需要的而数据。

  (2)大表对DDL(数据库定义语言:CREATE TABLE/VIEW/INDEX/SYN/CLUSTER)操作的影响:

    建立索引需要很长时间;

    风险:mysql版本<5.5建立索引会锁表;mysql版本>=5.5 虽然不会锁表,会造成主从延迟。

  (3)修改表结构需要长时间锁表:会造成长时间的主从延迟;影响正常的数据操作。

  (4)如何处理数据库中的大表:

    分库分表把一张大表分成多个小表。难点:分表主键的选择;分表跨分区数据的查询和统计。

    大表的历史数据分档(减少对前后端业务的影响)。难点:归档时间的选择;如何进行归档。

6.大事务带来的影响:

  事务是数据库系统区分其他一切文件系统的重要特征之一;

  事务特性:(1)原子性;(2)一致性;(3)隔离性:sql标准中定义的四种隔离级别:未提交读;已提交读(默认隔离级别,不可重复读);可重复读;可串行化;并发性由高到低,隔离性由低到高(4)持久性

  大事务:运行时间长,操作的数据比较多的事务(例余额宝);

  造成风险:锁定太多的数据,造成大量的阻塞和锁超时;回滚时所需时间比较长;执行时间长,造成主从延迟。

  处理大事务注意:避免一次性处理太多数据;移出不必要的事务中的select操作。

  

 

  

推荐阅读