MySQL服务器参数介绍

mysql参数介绍(客户端中执行),尽量只修改session级别的参数。

全局参数(新连接的session才会生效,原有已经连接的session不生效)

  • set global 参数名=参数值;
  • set @@global.参数名 :=参数值;

会话参数

  • set [session] 参数名=参数值;
  • set @@session.参数名 :=参数值;

内存配置相关参数

  • 确定可以使用的内存的上限
  • 确定mysql每个连接使用的内存
sort_buffer_size:需要注意,每个连接分配指定大小的内存;

join_buffer_size;

read_buffer_size;

read_rnd_buffer_size。

上述都为每个进程分别进行设置,所以要注意配置大小。
  • 确定需要为操作系统保留多少内存
  • 如何为缓存池分配内存
Innodb_buffer_pool_size:总内存 - (每个线程所需内存 * 连接数) - 系统保留内存

key_buffer_size:主要用于myisam引擎

IO相关配置参数

Innodb I/O相关配置

  • Innodb_log_file_size:单个日志文件大小
  • Innodb_log_files_in_group:日志文件的个数
  • 事务日志总大小:
Innodb_log_files_in_group * Innodb_log_file_size
  • Innodb_log_buffer_size:日志缓冲区大小
  • Innodb_flush_log_at_trx_commit:日志刷新的频率
0:每秒进行一次log写入cache,并flush log到磁盘。如果mysql关闭或重启会导致至少1秒日志的丢失。

1:『默认』,在每次事务提交执行log写入cache,并flush log到磁盘。保证不会导致事务日志的丢失。

2:【建议】,每次事务提交,执行log数据写入到cache。每秒执行一次flush log到磁盘。
  • Innodb_flush_method=O_DIRECT:Innodb刷新的方式。
  • Innodb_file_per_table=1:表空间。强烈建议启用。
  • Innodb_doublewrite=1:

Myisam I/O相关配置

  • delay_key_write
OFF:每次写操作后刷新新建缓冲区的脏块到磁盘
ON:只对建表是指定了delay_key_write选项的表使用延迟刷新。
ALL:对所有MYISAM表使用延迟键写入。会导致表损坏,使用相关命令进行修复。

安全相关配置参数

  • expire_logs_days指定自动清理binlog的天数
  • max_allowed_packet控制mysql可以接收的包的大小
  • skip_name_resolve禁用DNS查找
  • sysdate_is_now确保sysdate和now返回的日期是一样的。(同一条sql同时使用sysdate返回的结果有可能是不同的,因而建议启用)
  • read_only禁止非super用户写权限:在做主从复制时,建议备库启用这个配置项。
  • skip_slave_start警用slave自动恢复,(从服务器中进行配置)
  • sql_mode设置mysql所使用的sql模式。(建议不要在生产换环境中调整这个值,有可能会导致系统不可用)
strict_trans_tables

no_engine_subtitution

no_zero_date

no_zero_in_date

only_full_group_by:select字句需要全部列出group by字段,否则报错。

其它常用配置参数

  • sync_binlog控制mysql如何向磁盘中刷新binlog
  • tmp_table_size和max_heap_table_size控制内存临时表的大小。两个值应保持一致
  • max_connections允许最大连接数,一般设置为2000都可以。

数据库设计对性能的影响(所有优化的重点,其它的所有优化加起来都未必有数据库设计优化对性能的影响大)

  • 过分的反范式话为表建立太多的列
  • 过多的范式话造成太多表的关联(最多只允许61个表关联)
  • 在OLTP中使用不恰当的分区表
  • 使用外键保证数据的完整性(性能很低,建议不要使用外键约束)

优化建议

性能优化顺序

  • 数据库结构和sql语句优化
  • 数据库引擎的选择和参数配置(不要混合使用存储引擎)
  • 系统选择及优化
  • 硬件升级

mysql性能优化学习笔记-参数介绍及优化建议的更多相关文章

  1. mysql性能优化学习笔记(1)优化目的、方向及数据库准备

    前言: 最近参加面试,问到了很多关于mysql的优化方面的问题,回答的不是很好,也是因为原先做的项目流量不是很大,所以对mysql优化不是太了解,所以趁着周末,恶补一下. 本文来源于慕课网sqlerc ...

  2. Pandas 性能优化 学习笔记

    摘要 本文介绍了使用 Pandas 进行数据挖掘时常用的加速技巧. 实验环境 import numpy as np import pandas as pd print(np.__version__) ...

  3. ASP.NET Core Web开发学习笔记-1介绍篇

    ASP.NET Core Web开发学习笔记-1介绍篇 给大家说声报歉,从2012年个人情感破裂的那一天,本人的51CTO,CnBlogs,Csdn,QQ,Weboo就再也没有更新过.踏实的生活(曾辞 ...

  4. Mysql数据库基础学习笔记

    Mysql数据库基础学习笔记 1.mysql查看当前登录的账户名以及数据库 一.单表查询 1.创建数据库yuzly,创建表fruits 创建表 ) ) ,) NOT NULL,PRIMARY KEY( ...

  5. MYSQL视图的学习笔记

    MYSQL视图的学习笔记,学至Tarena金牌讲师,金色晨曦科技公司技术总监沙利穆 课程笔记的综合. 视图及图形化工具   1.       视图的定义 视图就是从一个或多个表中,导出来的表,是一个虚 ...

  6. mySQl数据库的学习笔记

    mySQl数据库的学习笔记... ------------------ Dos命令--先在记事本中写.然后再粘贴到Dos中去 -------------------------------- mySQ ...

  7. 【学习笔记】动态规划—斜率优化DP(超详细)

    [学习笔记]动态规划-斜率优化DP(超详细) [前言] 第一次写这么长的文章. 写完后感觉对斜优的理解又加深了一些. 斜优通常与决策单调性同时出现.可以说决策单调性是斜率优化的前提. 斜率优化 \(D ...

  8. 「学习笔记」FFT 之优化——NTT

    目录 「学习笔记」FFT 之优化--NTT 前言 引入 快速数论变换--NTT 一些引申问题及解决方法 三模数 NTT 拆系数 FFT (MTT) 「学习笔记」FFT 之优化--NTT 前言 \(NT ...

  9. mysql性能优化学习笔记

    mysql性能优化 硬件对数据库的影响 CPU资源和可用内存大小 服务器硬件对mysql性能的影响 我们的应用是CPU密集型? 我们的应用的并发量如何? 数量比频率更好 64位使用32位的服务器版本 ...

随机推荐

  1. dwz 多选删除

    <li><a title="确实要删除这些用户吗?" target="selectedTodo" postType="string& ...

  2. lishell学习之路:流程控制(case)

    流程控制case语句: 介绍:多分支case条件语句 1.case语句和if..elif..else语句一样都是多分支条件语句,不过和if多分支条件语句不同的是,case语句只能判断一种条件关系,而i ...

  3. Unity相关路径

    Application.dataPath 只读 在项目根目录下读取文件,但移动端没有访问权限.一般适用于PC端调试用. Application.streamingAssetsPath 在Assets目 ...

  4. BufferedReader readLine()方法

    控制台输入字符串之后回车,后台接收传来的字符串,代码如下: import java.io.BufferedReader; import java.io.IOException; import java ...

  5. MEAN组合框架搭建教程

    1,我们先走在官方github里面下载个包文件: git clone https://github.com/linnovate/mean.git  (是慢了点) 2,我把这个文件解压后文件名叫mean ...

  6. 大熊君大话NodeJS之------Stream模块

    一,开篇分析 流是一个抽象接口,被 Node 中的很多对象所实现.比如对一个 HTTP 服务器的请求是一个流,stdout 也是一个流.流是可读,可写或兼具两者的. 最早接触Stream是从早期的un ...

  7. 【C语言入门教程】5.4 递归

    递归函数 是能够直接或通过另一个函数间接调用自身的函数,调用自身的方法称为递归调用.递归调用的本质是使用同一算法将复杂的问题不断化简,直到该问题解决. 例如求斐波那契数列的某一项算法适用于递归函数实现 ...

  8. 区别 PHP 的 $_POST、$HTTP_RAW_POST_DATA 和 php://input

    Mac Pro 电脑编译安装了 PHP 5.6.21,先前的系统运行时报如下警告级错误: Deprecated: Automatically populating $HTTP_RAW_POST_DAT ...

  9. static 的使用

    static用法小结 转自 http://blog.csdn.net/Kendiv/article/details/675941 在C语言中,static的字面意思很容易把我们导入歧途,其实它的作用有 ...

  10. IBM B16光纤交换机ZOON划分方法

      一.ZOON的含义及划分原则     Zoon在光纤存储交换机中的功能类似于以太网交换机VLAN的作用,主要是为了在一台交换机划分出多个逻辑区,用于防范不同应用的存储连接发起广播包,提高光纤交换机 ...