目录
一、影响数据库查询速度的因素
二、风险分析
三、网卡流量
四、磁盘IO
五、服务器硬件
六、数据库性能优化顺序
一、影响数据库查询速度的因素
二、风险分析
QPS(Queries Per Second):每秒查询率,是指一台服务器每秒能够相应的查询次数,是对一个特定的查询服务器在规定时间内所处理流量多少的衡量标准。
TPS(TransactionsPerSecond):事务数/秒,它是软件测试结果的测量单位。客户机在发送请求时开始计时,收到服务器响应后结束计时,以此来计算使用的时间和完成的事务个数。
效率低下的SQL语句会带来超高的QPS与TPS:
(1)大量的并发:数据连接数被占满(max_connection默认100,一般把连接数设置得大一些)。并发量:同一时刻数据库服务器处理的请求数量。
(2)超高的CPU使用率:CPU资源耗尽会出现宕机。
(3)磁盘IO性能下降:大量消耗磁盘性能的计划任务。解决:更换磁盘设备、调整计划任务、做好磁盘维护。
三、网卡流量
如何避免无法连接数据库的情况:
(1)减少从服务器的数量(从服务器会从主服务器复制日志);
(2)进行分级缓存(避免前端大量缓存失效);
(3)避免使用select * 进行查询;
(4)分离业务网络和服务器网络。
四、磁盘IO
大表中记录行数巨大,单表超千万,表数据文件巨大,超过10个G。
大表带来的问题:
(1)很难在短时间内过滤出需要的数据;
(2)很难在短时间内过滤出需要的数据修改表结构需要长时间的锁表,会造成长时间的主从延迟(‘480秒延迟’)。
解决办法:把一张大表分成多个小表。
五、服务器硬件
MySQL体系结构分三层:客户端、服务层、存储引擎。
MySQL是插件式的存储引擎,不同的存储引擎,只要符合mysql存储引擎的接口就可以使用,甚至可以开发自己的存储引擎。
MySQL的存储引擎是针对表的,不是针对库的。也就是说在一个数据库中可以使用不同的存储引擎,但是一般不建议这样做。
MySQL5.5及之后版本默认的是InnoDB存储引擎。