概述

最近在对各个系统的mysql做一些参数上的优化,也开了慢查询,准备后面针对特定sql再进一步优化。下面主要介绍一下一些优化的参数。


1、优化前mysql配置

可以看到基本上是没怎么做优化的。


2、优化后的配置

以下是优化后的一些参数。


3、优化参数说明:

#基础配置datadir=/data/datafilesocket=/var/lib/mysql/mysql.socklog-error=/data/log/mysqld.logpid-file=/var/run/mysqld/mysqld.pidcharacter_set_server=utf8#允许任意IP访问bind-address = 0.0.0.0#是否支持符号链接,即数据库或表可以存储在my.cnf中指定datadir之外的分区或目录,为0不开启#symbolic-links=0#支持大小写lower_case_table_names=1#二进制配置server-id = 1log-bin = /data/log/mysql-bin.loglog-bin-index =/data/log/binlog.indexlog_bin_trust_function_creators=1expire_logs_days=7#sql_mode定义了mysql应该支持的sql语法,数据校验等#mysql5.0以上版本支持三种sql_mode模式:ANSI、TRADITIONAL和STRICT_TRANS_TABLES。 #ANSI模式:宽松模式,对插入数据进行校验,如果不符合定义类型或长度,对数据类型调整或截断保存,报warning警告。 #TRADITIONAL模式:严格模式,当向mysql数据库插入数据时,进行数据的严格校验,保证错误数据不能插入,报error错误。用于事物时,会进行事物的回滚。 #STRICT_TRANS_TABLES模式:严格模式,进行数据的严格校验,错误数据不能插入,报error错误。sql_mode=STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION#InnoDB存储数据字典、内部数据结构的缓冲池,16MB已经足够大了。innodb_additional_mem_pool_size = 16M#InnoDB用于缓存数据、索引、锁、插入缓冲、数据字典等#如果是专用的DB服务器,且以InnoDB引擎为主的场景,通常可设置物理内存的60%#如果是非专用DB服务器,可以先尝试设置成内存的1/4innodb_buffer_pool_size = 4G#InnoDB的log buffer,通常设置为 64MB 就足够了innodb_log_buffer_size = 64M#InnoDB redo log大小,通常设置256MB 就足够了innodb_log_file_size = 256M#InnoDB redo log文件组,通常设置为 2 就足够了innodb_log_files_in_group = 2#共享表空间:某一个数据库的所有的表数据,索引文件全部放在一个文件中,默认这个共享表空间的文件路径在data目录下。 默认的文件名为:ibdata1 初始化为10M。#独占表空间:每一个表都将会生成以独立的文件方式来进行存储,每一个表都有一个.frm表描述文件,还有一个.ibd文件。 其中这个文件包括了单独一个表的数据内容以及索引内容,默认情况下它的存储位置也是在表的位置之中。#设置参数为1启用InnoDB的独立表空间模式,便于管理innodb_file_per_table = 1#InnoDB共享表空间初始化大小,默认是 10MB,改成 1GB,并且自动扩展innodb_data_file_path = ibdata1:1G:autoextend#设置临时表空间最大4Ginnodb_temp_data_file_path=ibtmp1:500M:autoextend:max:4096M#启用InnoDB的status file,便于管理员查看以及监控innodb_status_file = 1#当设置为0,该模式速度最快,但不太安全,mysqld进程的崩溃会导致上一秒钟所有事务数据的丢失。#当设置为1,该模式是最安全的,但也是最慢的一种方式。在mysqld 服务崩溃或者服务器主机crash的情况下,binary log 只有可能丢失最多一个语句或者一个事务。#当设置为2,该模式速度较快,也比0安全,只有在操作系统崩溃或者系统断电的情况下,上一秒钟所有事务数据才可能丢失。innodb_flush_log_at_trx_commit = 1#设置事务隔离级别为 READ-COMMITED,提高事务效率,通常都满足事务一致性要求#transaction_isolation = READ-COMMITTED #max_connections:针对所有的账号所有的客户端并行连接到MYSQL服务的最大并行连接数。简单说是指MYSQL服务能够同时接受的最大并行连接数。#max_user_connections : 针对某一个账号的所有客户端并行连接到MYSQL服务的最大并行连接数。简单说是指同一个账号能够同时连接到mysql服务的最大连接数。设置为0表示不限制。#max_connect_errors:针对某一个IP主机连接中断与mysql服务连接的次数,如果超过这个值,这个IP主机将会阻止从这个IP主机发送出去的连接请求。遇到这种情况,需执行flush hosts。#执行flush host或者 mysqladmin flush-hosts,其目的是为了清空host cache里的信息。可适当加大,防止频繁连接错误后,前端host被mysql拒绝掉#在 show global 里有个系统状态Max_used_connections,它是指从这次mysql服务启动到现在,同一时刻并行连接数的最大值。它不是指当前的连接情况,而是一个比较值。如果在过去某一个时刻,MYSQL服务同时有1000个请求连接过来,而之后再也没有出现这么大的并发请求时,则Max_used_connections=1000.请注意与show variables 里的max_user_connections的区别。#Max_used_connections / max_connections * 100% ≈ 85%max_connections=600max_connect_errors=1000max_user_connections=400#设置临时表最大值,这是每次连接都会分配,不宜设置过大 max_heap_table_size 和 tmp_table_size 要设置一样大max_heap_table_size = 100Mtmp_table_size = 100M#每个连接都会分配的一些排序、连接等缓冲,一般设置为 2MB 就足够了sort_buffer_size = 2Mjoin_buffer_size = 2Mread_buffer_size = 2Mread_rnd_buffer_size = 2M#建议关闭query cache,有些时候对性能反而是一种损害query_cache_size = 0#如果是以InnoDB引擎为主的DB,专用于MyISAM引擎的 key_buffer_size 可以设置较小,8MB 已足够#如果是以MyISAM引擎为主,可设置较大,但不能超过4Gkey_buffer_size = 8M#设置连接超时阀值,如果前端程序采用短连接,建议缩短这2个值,如果前端程序采用长连接,可直接注释掉这两个选项,是用默认配置(8小时)#interactive_timeout = 120#wait_timeout = 120#InnoDB使用后台线程处理数据页上读写I/0请求的数量,允许值的范围是1-64#假设CPU是2颗4核的,且数据库读操作比写操作多,可设置#innodb_read_io_threads=5#innodb_write_io_threads=3#通过show engine innodb status的FILE I/O选项可查看到线程分配#设置慢查询阀值,单位为秒long_query_time = 120slow_query_log=1 #开启mysql慢sql的日志log_output=table,File #日志输出会写表,也会写日志文件,为了便于程序去统计,所以最好写表slow_query_log_file=/data/log/slow.log##针对log_queries_not_using_indexes开启后,记录慢sql的频次、每分钟记录的条数#log_throttle_queries_not_using_indexes = 5##作为从库时生效,从库复制中如何有慢sql也将被记录#log_slow_slave_statements = 1##检查未使用到索引的sql#log_queries_not_using_indexes = 1#快速预热缓冲池innodb_buffer_pool_dump_at_shutdown=1innodb_buffer_pool_load_at_startup=1#打印deadlock日志innodb_print_all_deadlocks=1 

在做优化前一定要先保存之前的配置文件,要不个别参数设置报错就很麻烦了,后面会分享更多devops和DBA方面的内容,感兴趣的朋友可以关注一下~

mysql 插入慢_记一次生产环境mysql数据库参数优化,值得收藏相关推荐

  1. mysql死锁语句_记一次神奇的Mysql死锁排查

    背景 说起Mysql死锁,之前写过一次有关Mysql加锁的基本介绍,对于一些基本的Mysql锁或者死锁都有一个简单的认识,可以看下这篇文章为什么开发人员需要了解数据库锁.有了上面的经验之后,本以为对于 ...

  2. mysql++裸盘_记一次裸迁 MySQL 经历

    记一次裸迁MySQL经历 前言:博主企业有一台企业阿里云机器,因为安装了云锁,造成服务器动不动就给我所死服务器.(就是那种 chattr +i /bin/bash ,分分钟日死狗 )趁着周末,Boos ...

  3. linux ntp时间立即同步命令_记一次生产环境部署NTP服务及配置时间同步

    概述 linux服务器在提供服务时,要和其他机器进行请求的交互,实际生产环境中,可能因为时间不同步,导致了服务异常. 下面介绍下怎么部署NTP服务来解决这个问题. ps:强烈吐槽下头条这个新排版功能, ...

  4. java获取达梦数据库_记一次对达梦数据库的优化过程

    某年某月某日的一个下午,接收到监控服务器的一条告警短信: 尊敬的运维工程师 XX,你好: "192.168.136.200"数据库服务器 CPU 异常,CPU 使用率 98.7%, ...

  5. mysql 分区表_分享一份生产环境mysql数据库分区表改造方案

    概述 简单分享下最近做的一个mysql数据库分区表改造方案,仅供参考. 思路:(假设在2020.7.21进行表分区改造) 没时间,就不画图说明了 1.创建与原始表一样结构的新表,新分区 2.往新表插入 ...

  6. 千万级大表如何更快速的创建索引_分享一份生产环境mysql数据库大表归档方案,值得收藏...

    概述 分享下最近做的一个mysql大表归档方案,仅供参考. 整体思路 一.明确哪些大表需做归档 1.数据库表概要信息统计 SELECTt1.table_schema,t1.table_name,`EN ...

  7. mysql时区错乱_记一次线上mysql时区错乱

    Mysql查询时间和页面显示时间相差八个小时. 在一次线上程序调用mysql内部函数转化时间戳的时候的bug记录.在本地开发与测试环境都没得问题.但是上线后,程序总是不再状态. 遂开启审阅代码的过程, ...

  8. fastdfs搭建_记一次生产环境FastDFS文件系统安装部署过程

    概述 因为前面在做FastDFS文件系统安装部署介绍时我们已经测试将文件上传成功了,但我们无法下载.因此安装Nginx作为服务器以支持Http方式访问文件.同时,后面安装FastDFS的Nginx模块 ...

  9. CentOS7下生产环境MySQL 5.7.26小版本升级5.7.39

    目录 升级前版本 背景 升级 下载软件包 备份并停止数据库 升级安装 升级后检查 本文仅适合使用当前数据库为 RPM 安装方式 升级前版本 使用 mysql -V 命令查看当前版本 [dev@gxmy ...

最新文章

  1. android 点击连续拍照,android自定义相机、连续(自动)聚焦、点击(触摸)聚焦、变焦、拍照后自定义裁剪、旋转...
  2. 迷宫寻路系列常用算法逻辑探究
  3. 使用Virtual PC做病毒的试验
  4. php分页采集数据,php实现分页调取数据库记录
  5. amt630a芯片中文资料_甲基化芯片学习记录
  6. idea新建scala文件_IDEA maven项目中新建.scala文件
  7. vue 对象继承_Vue2.0中组件的继承与扩展是什么
  8. linux 网络命令 dns,[LN_03] Linux网络环境查看(网卡|路由|DNS|IP)、网络测试命令(端口探测|路由跟踪|抓包|ssh连接)...
  9. 高中计算机课程打字网址,信息课
  10. Chrome development tools学习笔记(3)
  11. 如何使用jQuery将事件附加到动态HTML元素? [重复]
  12. 机器学习-决策树(ID3、C4.5、CART)
  13. 高中电子技术——三极管的放大特性和开关特性
  14. Android使用scrollview截取整个的屏幕并分享微信
  15. ggplot2的中文显示
  16. echarts 饼图文字图例多种颜色
  17. java append函数_请详细说一下java中append()的方法.
  18. Description Resource Path Location Type Archive for required library:xxxcan not or is not a vail zip
  19. 加州房价预测数据预处理
  20. 苹果cmsv10+2022新版海螺影视主题模板“带后台“M3.1全解密版本+萌芽采集插件

热门文章

  1. explain如何查看mysql_MySql中如何使用 explain 查询 SQL 的执行计划
  2. 学计算机的能看出批图吗,高手教你:如何看出一张图有没有被 P 过?
  3. java cygwin 乱码_Cygwin中文乱码的解决方案
  4. unique去除重复的向量_Matlab如何剔除矩阵中重复列向量
  5. LeetCode 106. 从中序与后序遍历序列构造二叉树(递归)
  6. OpenCV彩色目标跟踪
  7. falsk 请求钩子
  8. Java 数组 定义一个数组,获取数组中的最大值和最小值,奇数个数和偶数个数...
  9. Flask 发布 1.0 稳定版
  10. java+jxls利用excel模版进行导出