数据库性能调优

mysql数据库的优化

  • os + 库

    1、 磁盘io比较高磁盘、磁盘空间比较大
    2、 os: linux

    • os本身就有一些限制

    • ulimit 打开文件数量,操作系统可以运行最大进程+线程数

      • ulimit -a:查看系统的全部信息
        在这里插入图片描述
        ulimit -n: 查看最大的文件数量,一般设置为16000
        uimit -u:查看最大的进程和线程数
      • 库本身配置参数
        查看数据库的配置参数:
        • show variables;
          在这里插入图片描述
          修改这些参数:
          1、set gloable 参数名=参数值
          2、修改配置文件:/etc/my.cnf (修改后需要重启mysql)

数据库配置方面调优

1、数据库连接数不够用

  • 数据库的配置
    在这里插入图片描述
    这时候如果这max_connectionsMax_used_connections两个值相接近,就去修改max_connections配置,参考open_files_lomits和innodb_open_files的值

  • 应用程序的配置文件:
    在这里插入图片描述

    netstat -ano|grep dbms_prot |grep ESTABLISHED |wc -l
    # 这个命令,在数据库机器中执行  看数据库当前总共有多少的连接数
    netstat -ano|grep dbms_prot |grep pjserver_ip |grep ESTABLISHED |wc -l
     #  这个命令,在数据库机器中执行 可以看到  应用程序pjserver与 数据库建立连接数有多少
    

    如果运用这个命令查看到的连接数比数据库配置的连接数小很多时,可以找开发人员确认,应用程序里配置的连接池是否太小(应该我们没有权限查看这个配置)

2、慢查询日志
步骤:

  • 修改mysqld.cnf文件:

    慢查询配置
    slow_query_log=ON
    long_query_time=1(单位为s)
    
  • 重启mysql

    • 系统直接安装的mysql:systemctl restart mysql
    • docker方式安装:docker restart 容器名称
  • 运行性能测试脚本
    当响应时间一定要大于long_query_time这个值时,可能会有慢查询日志写入日志文件中

  • 就可以定位到慢查询sql

数据库表方面的优化
在这里插入图片描述
数据库优化策略:
数据库数据量级在几千,你连索引都可以不建; 几万,到几十万,上百万数据时,考虑索引;上千万的数据时,考虑 分表; 大几千万,甚至上亿级别数据,这个时候考虑分区。 当数据的数据读的操作比写的操作大很多,影响服务器性能时,可以考虑读写分离

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值