什么影响了MySQL的性能(1)

数据库 waitig 492℃ 百度已收录 0评论

        完整性&一致性

        稳定的数据库以及服务器

        优化数据库性能

                1xMaster     Slave x 15

        监控信息     

                 一台主服务器

                          CPU:64核

                                 并发量&CPU使用率

                                 磁盘io          吞吐量

         最好不要再主库上数据库备份

                  大型活动前取消这类计划

        影响数据库的因素:

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.分离业务网络和服务器网络

有 什 么 会 影 响 数 据 库 性 能 大 表 给 我 们 带 来 的 问 题 大 事 务 给 我 们 带 来 的 影 响

大表:

记录行数巨大,单表超过千万行

表数据文件巨大,表数据文件超过10G

大表对查询的影响:

慢查询:很难在一定的时间内过滤所需

要的数据

大表对DDL操作的影响

建立索引需要很长的时间

风险:

MySQL<5.5建立索引会锁表

MySQL>=5.5虽然不会锁表但会引起主从延迟

修改表结构需要长时间锁表

风险:

会造成长时间的主从延迟

影响正常的数据操作

如何处理数据库中的大表

分库分表把一张大表分成多个小表

难点:

分表主键的选择

分表后跨分区数据的查询和统计

大表的历史数据归档

减少对前后端业务的影响

难点:

归档时间点的选择

如何进行归档操作

什么是事务

1.事务是数据库系统区别其他一切文件系统的

重要特征之一

2.事务是一组具有原子性的SQL语句,或是一

个独立的工作单元

事务的         原子性、一致性、隔离性、持久性

未提交读(read uncommited):

是数据进行了修改,即使还未提交,对其他事务也还是可见的。(事务可以读未提交的数据,也称为脏读)。不建议使用,会造成很多逻辑上的问题。

已提交读(read commited)

一个事务在未提交前,对数据所做的修改,对其他事务是不可见的

可重复读(repeatable read) 默认的隔离级别

一个事务已经提交对数据所做的修改后,对其他事务仍然不可见

可串行化(serializable)

 

隔离性由低到高分别是:

未提交读;已提交读;可重复读;可串行化

并发性由低到高分别是:

可串行化;可重复读;已提交读;未提交读

什么是大事务?

定义:     运行时间比较长,操作的数据比较多

的事务  

风险:锁定太多的数据,造成大量的阻塞和锁

超时

回滚时所需时间比较长

执行时间长,容易造成主从延迟

如何处理大事务

1.避免一次处理太多的数据

2.移出不必要在事务中的SELECT操作


本文由【waitig】发表在等英博客
本文固定链接:什么影响了MySQL的性能(1)
欢迎关注本站官方公众号,每日都有干货分享!
等英博客官方公众号
点赞 (0)分享 (0)