mysql性能优化学习笔记-参数介绍及优化建议
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性能优化学习笔记-参数介绍及优化建议的更多相关文章
- mysql性能优化学习笔记(1)优化目的、方向及数据库准备
前言: 最近参加面试,问到了很多关于mysql的优化方面的问题,回答的不是很好,也是因为原先做的项目流量不是很大,所以对mysql优化不是太了解,所以趁着周末,恶补一下. 本文来源于慕课网sqlerc ...
- Pandas 性能优化 学习笔记
摘要 本文介绍了使用 Pandas 进行数据挖掘时常用的加速技巧. 实验环境 import numpy as np import pandas as pd print(np.__version__) ...
- ASP.NET Core Web开发学习笔记-1介绍篇
ASP.NET Core Web开发学习笔记-1介绍篇 给大家说声报歉,从2012年个人情感破裂的那一天,本人的51CTO,CnBlogs,Csdn,QQ,Weboo就再也没有更新过.踏实的生活(曾辞 ...
- Mysql数据库基础学习笔记
Mysql数据库基础学习笔记 1.mysql查看当前登录的账户名以及数据库 一.单表查询 1.创建数据库yuzly,创建表fruits 创建表 ) ) ,) NOT NULL,PRIMARY KEY( ...
- MYSQL视图的学习笔记
MYSQL视图的学习笔记,学至Tarena金牌讲师,金色晨曦科技公司技术总监沙利穆 课程笔记的综合. 视图及图形化工具 1. 视图的定义 视图就是从一个或多个表中,导出来的表,是一个虚 ...
- mySQl数据库的学习笔记
mySQl数据库的学习笔记... ------------------ Dos命令--先在记事本中写.然后再粘贴到Dos中去 -------------------------------- mySQ ...
- 【学习笔记】动态规划—斜率优化DP(超详细)
[学习笔记]动态规划-斜率优化DP(超详细) [前言] 第一次写这么长的文章. 写完后感觉对斜优的理解又加深了一些. 斜优通常与决策单调性同时出现.可以说决策单调性是斜率优化的前提. 斜率优化 \(D ...
- 「学习笔记」FFT 之优化——NTT
目录 「学习笔记」FFT 之优化--NTT 前言 引入 快速数论变换--NTT 一些引申问题及解决方法 三模数 NTT 拆系数 FFT (MTT) 「学习笔记」FFT 之优化--NTT 前言 \(NT ...
- mysql性能优化学习笔记
mysql性能优化 硬件对数据库的影响 CPU资源和可用内存大小 服务器硬件对mysql性能的影响 我们的应用是CPU密集型? 我们的应用的并发量如何? 数量比频率更好 64位使用32位的服务器版本 ...
随机推荐
- yii2-按需加载并管理CSS样式/JS脚本
原文地址:https://segmentfault.com/a/1190000003742452
- Redis安装及主从配置(转)
一.何为Redis redis是一个key-value存储系统.和Memcached类似,它支持存储的value类型相对更多,包括string(字符串).list(链表).set(集合)和zset(有 ...
- mysql数据表分表策略2(转)
mysql分表方法: 方法一. 做数据库集群! 主从数据库 双向热备份(或一对多的数据库实时备份策略),这样可将数据库查询分摊到几个服务器去(可跟服务器负载均衡结合起来架构) 优点:扩展性好,没有多个 ...
- Bootstrap学习------Tabel
Bootstrap的表格和Html表格大同小异,只是封装了一些css供我们使用 <table>标签必须引用class="table"基类样式,我们可以根据需求赛选需要的 ...
- 合并两个结构完全相同的DataTable
两个结构一模一样的DataTable如何合并? 例子:使用Winform进行演示,表2的数据为固定的,表1的数据可以动态添加,通过合并按钮合并表1和表2的数据到表3 1.规定公共的DataTable结 ...
- jQuery源码-dom操作之jQuery.fn.text
写在前面 jQuery.fn.text在jQuery是个使用频率比较高的接口,它的作用无非是设置/获取dom节点的内容文本,下文会通过几个简单的例子来说明.text()接口的使用,以及最后会对源码进行 ...
- Jquery控制滚动显示欢迎字幕v2
Jquery控制滚动显示欢迎字幕v2: 之前做的那个比较适合测试环境,但要套入到网站中,有两个按钮在那摆着,还是不太好看.后面对代码进行了修改,如下: 参考代码: <html> <h ...
- PHP 数组的遍历的几种方式(以及foreach与for/while+each效率的比较)
* 使用foreach遍历数组时要注意的问题: * 1.foreach在遍历之前会自动重置指针使用其指向第一个元素,所以foreach可以多次遍历 * 2.foreach遍历完成之后,指针是没有指向数 ...
- C#网络爬虫 WebUtility使用 转义字符 urlCode
背景: 在C#写网络爬虫时候,有时候需要将html中的转义字符进行处理,还有网址中的中文处理 一.html转义字符处理 1.ASP.NET中的html解析 HttpUtility.HtmlDecode ...
- centos安装
转:http://www.cnblogs.com/Johness/archive/2012/12/03/2800126.html 在已经安装了Win7的系统下安装CentOS 注意:1.由于涉及到对硬 ...