MySQL性能分析

一、 影响mysql性能的因素。

  1. sql查询速度
  2. 服务器硬件(cpu、内存)
  3. 网卡流量
  4. 磁盘io。
  5. 大表
  6. 大事物

二、因素造成的影响

  1. 超高的QPS(每秒钟处理的查询了)和TPS(每秒的事物数)

               风险:sql的执行效率地下。

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

               风险:大量并发:数据库连接数被占满(最大连接数配置文件限制:max_connections默认100)。

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

      3.磁盘io

               风险:磁盘io性能突然下降(使用更快的磁盘设备)

               其他大量消耗磁盘性能的计划任务(调整计划任务)。

       4.网卡流量

                风险:如何避免无法连接数据库的情况。

                        1、减少从服务器的数据量。

                        2、进行分级缓存。

                        3、尽量避免使用select *

                        4、分离业务网络和服务器网络。

        5.大表

              1、  什么是大表

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

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

               2、影响

                        大表对查询的影响。

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

                        大表对DDL操作的影响

                                1、建立索引需要很长的时间。

                                风险: mysql版本<5.5建立索引会锁表。

                                            mysql版本>=5.5虽然不会锁表但会引起主从延迟。

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

                                风险:长时间的主从延迟。

                                            影响正常的数据操作。

                     3、处理

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

                                难点:分表主键的选择。

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

                                大表历史数据归档

                                难点:归档时间点的选择。

                                            如何进行归档操作。

        6.大事物

                事物:1、事物是关系型数据库系统区别于其他一切文件系统的重要特性之一。

                            2、事物是一组具有原子性的sql语句,或是一个独立的工作单元。

                特性:    原子性:一个事物必须被视为一个不可分割的最小工作单元,整个事物中的所有操作要么全部提交成功,要么全部失败。对于一个事物来说,不可能只执行其中的一部分操作。

                                一致性:事物将数据库从一种一致性状态转换到另外一种一致性状态,在事物开始和事物结束后数据库中数据的完整性没有被破坏。

                                隔离性:隔离性是要求一个事物对数据库中数据的修改,在未提交完成前对于其它事物是不可见的。

                                             四种隔离级别:1 、未提交读(脏读)。

                                                                       2 、已提交读()。

                                                                        3、 可重复读。

                                                                        4、可串行化。

                                持久性:一旦事物提交,则其所做的修改就会永久的保存到数据库中。此时即使系统崩溃,已经提交的修改数据也不会丢失。

        大事物:运行时间比较长,操作的数据比较多的事物。

                风险:锁定太多的数据,造成大力的阻塞和锁超时。

                        回滚时所需的时间比较长。

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

        如何处理:1、避免一次处理太多的数据。

                           2、移出不必要在事物中的select操作。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值