mysql数据库优化01

哪些因素影响了数据库性能

影响数据库性能主要因素总结如下:

1
2
3
4
sql查询速度
网卡流量
服务器硬件
磁盘IO

以上因素并不是时时刻刻都会影响我们的数据库性能,而就像木桶效应一样。如果其中一个因素严重影响性能,那么整个数据库性能就会严重受阻。另外,这些影响因素都是相对的。例如:当数据量并没有达到百万千万这样的级别,那么sql查询速度也许就不是个重要因素,换句话说,你的sql语句效率适当低下可能并不影响整个效率多少,反之,这种情况,无论如何怎么优化sql语句,可能都没有太明显的效果。

超高的QPS和TPS

什么是QPS:Query Per Second,每秒钟查询量。如果每秒钟能处理100条查询sql语句,那么QPS就约等于100
什么是TPS:Transaction processing systems,每秒钟事务处理的数量。

在商城大促的情况下,访问量暴增。这种情况下,sql语句的优化显得最直接最有效。由于现在的mysql不支持多cpu并发运算,即每条sql只能由一条cpu执行。这也就意味着,如果我们想提高单条sql的执行速度,无法通过增加cpu的方式达到效果。

产生的风险: 效率低下的SQL

大量的并发和超高的CPU使用率

大量的并发:数据库连接数被占满.
对于数据库而言,所能建立的连接数是有限的,mysql中max_connections参数默认值是100.
超高的CPU使用率:因CPU资源耗尽而出现宕机.

磁盘IO

风险:磁盘IO性能突然下降。
使用更好的磁盘设备解决。
调整其他大量消耗磁盘性能的计划任务。

网卡流量

风险:网卡IO被占满(100Mb/s=100MB)
如何避免无法连接数据库的情况:
减少从服务器的数量。从服务器都要从主服务器上复制日志,所以,从服务器越多,网络流量越大。
进行分级缓存。前方大量缓存突然失效会对数据库造成严重的冲击。
避免使用“select * ”进行查询。
分离业务网络和服务器网络。

大表

什么样的表可以称为大表:
记录行数巨大,单表超过千万行.
表数据文件巨大,表数据文件超过10G.

大事务

事务是数据库系统区别于其他一切文件系统的重要特性之一.
事务是一组具有原子性的SQL语句.

什么是大事务

运行时间比较长,操作数据比较多的事务.

如何处理大事务

避免一次处理太多的数据,移出不必要在事务中的select操作.

坚持原创技术分享,您的支持将鼓励我继续创作!