mysql-8版本优化建议
mysql-8版本优化
参考官方文档:https://dev.mysql.com/doc/refman/8.0/en/
数据库优化大方向:
数据库性能:取决于数据库级别的几个因素,例如 表,查询 和 配置 设置。这些软件结构导致在硬件级别执行CPU和I / O操作,必须将这些操作最小化并使其尽可能高效。
mysql数据库优化基本包含三个方面:
数据库级别的优化
硬件优化
平衡便携性和性能
这三种方式又有各自的优化方案:
数据库级别:优化表格的结构 | 优化索引 | 使用适合的存储引擎 | 优化锁定策略 |对内存区域的优化
硬件优化:磁盘的读写 | cpu周期
平衡便携性和性能:注释方面的优化
总体来说,mysql数据库的优化有以上三大块
它们各自的优化也分很多种,参考官方文档:https://dev.mysql.com/doc/refman/8.0/en/optimization.html
日常我们优化方案有哪些呢?
一,首先我们先看实际环境下,硬件的优化我们能做多少?
CPU :
推荐使用4u服务器来专门做数据库服务器用
内存 :
内存基本实际中不担心,官方建议是不要小于2G。但是工作中mysql server服务器基本都是远超2G的内存,所以应该不用太担心内存问题
磁盘 :
磁盘是一大方面,磁盘的好坏直接影响着IO的读写速度,这是物理性的,无法改变。mysql通常作为数据库服务器,它每秒都会进行大量的,复杂的查询操作,对磁盘的读写量可想而知!我们能做的,在磁盘做阵列上,使用RAID10阵列方式最好,注意不要尝试使用RAID5。如果不考虑成本,使用固态SSD硬盘给mysql数据库使用。
二,数据库级别的优化
通常默认的 my.cnf 配置文件无法发挥出 MySQL 最高的性能,所以需要根据不同的硬件
进行优化,配置文件的优化也是重点,下面是物理内存为 32G 的数据库优化参数,具体从全
局、二进制日志、主从、innodb、myisam 几个方面优化,仅供参考
default-time-zone=+8:00
#默认 mysql 使用的是系统时区,修改为北京时间,也就是所说的东八区。
interactive_timeout = 120
#服务器关闭交互式连接前等待活动的秒数。
wait_timeout = 120
#服务器关闭非交互连接之前等待活动的秒数。
open_files_limit = 10240
#MySQL 服务器打开文件句柄数限制。
group_concat_max_len = 102400
#mysql 默认的拼接最大长度为 1024 个字节,由于 1024 个字节会出现不够用的情况, 根据实际情况进行修改。
user=mysql
#使用 mysql 用户运行。
character-set-server=utf8
init_connect='SET NAMES utf8'
#设置字符集为 utf8
7 back_log = 600
#在 MySQL 暂时停止响应新请求之前,短时间内的多少个请求可以被存在堆栈中。如果系统在短时间内有很多连接,则需要增大该参数的值,该参数值指定到来的 TCP/IP 连接的
监听队列的大小。默认值 50。
8 max_connections = 5000
#MySQL 允许最大的进程连接数,如果经常出现 Too Many Connections 的错误提示, 则需要增大此值。
9 max_connect_errors = 6000
#设置每个主机的连接请求异常中断的最大次数,当超过该次数,MySQL 服务器将禁止 host 的连接请求,直到 mysql 服务器重启或通过 flush hosts 命令清空此 host 的相关信息。
10 table_open_cache = 2048
#指定表高转缓存的大小,每当mysql方位一个表时,如果表缓冲区还有空间,该表就被打开并放入其中,这样可以更加快速访问表内容
11 thread_concurrency = 8
#这个值正确与否,对mysql的性能影响很大,在多个cpu核下,错误设置值,会导致mysql不能充分利用cpu;比如有一个双核的cpu,那么值应该为4;2个双核的cpu,那么值应该为8
12 query_cache_limit = 4M
#默认是4kb,设置越大值,对大数据查询有好处,但是如果是小数据查询,就容易照成内存碎片和浪费
13 bulk_insert_buffer_size = 64M
#批量插入数据缓存大小,可以有效提高插入效率,默认为8M
下面几个参数将是对二进制日志文件的优化
14 log-bin=mysql-bin
#打开二进制功能
15 binlog_cache_size = 4M
#在事务过程中容纳二进制日志SQL语句的缓存大小。
16 expire_logs_days = 7
#二进制日志只留存最近7天,不用人工手动删除
mysql-8版本优化建议的更多相关文章
- 50多条mysql数据库优化建议
1.对查询进行优化,应尽量避免全表扫描,首先应考虑在 where 及 order by 涉及的列上建立索引. 缺省情况下建立的索引是非群集索引,但有时它并不是最佳的.在非群集索引下,数据在物理上随机存 ...
- MYSQL 优化建议
转自 http://coolshell.cn/articles/1846.html MYSQL 优化建议20条 1. 为查询缓存优化你的查询 大多数的MySQL服务器都开启了查询缓存.这是提高性最有效 ...
- 优化MySQL的21个建议 – MySQL Life【转】
今天一个朋友向我咨询怎么去优化 MySQL,我按着思维整理了一下,大概粗的可以分为21个方向. 还有一些细节东西(table cache, 表设计,索引设计,程序端缓存之类的)先不列了,对一个系统,初 ...
- mysql优化建议21条
转自: http://blog.csdn.net/waferleo/article/details/7179009 今 天,数据库的操作越来越成为整个应用的性能瓶颈了,这点对于Web应用尤其明显.关于 ...
- mysql数据库查询过程探究和优化建议
查询过程探究 我们先看一下向mysql发送一个查询请求时,mysql做了什么? 如上图所示,查询执行的过程大概可分为6个步骤: 客户端向MySQL服务器发送一条查询请求 服务器首先检查查询缓存,如果命 ...
- MySQL 调优/优化的 100 个建议
MySQL 调优/优化的 100 个建议 MySQL是一个强大的开源数据库.随着MySQL上的应用越来越多,MySQL逐渐遇到了瓶颈.这里提供 101 条优化 MySQL 的建议.有些技巧适合特定 ...
- mysql性能优化学习笔记-参数介绍及优化建议
MySQL服务器参数介绍 mysql参数介绍(客户端中执行),尽量只修改session级别的参数. 全局参数(新连接的session才会生效,原有已经连接的session不生效) set global ...
- mysql锁机制总结,以及优化建议
一.锁概述和分类 二.表锁 偏向MyISAM存储引擎,开销小,加锁快:无死锁:锁定粒度大,发生锁冲突的概率最高,并发度最低. [手动增加表锁] lock table 表名字1 read(write), ...
- 从原理上理解MySQL的优化建议
从原理上理解MySQL的优化建议 预备知识 B+树索引 mysql的默认存储引擎InnoDB使用B+树来存储数据的,所以在分析优化建议之前,了解一下B+树索引的基本原理. 上图是一个B+树索引示意图, ...
- Mysql优化建议
Mysql优化建议: (1)CPU要更快,而不是更多.因为mysql不支持多个处理器并发处理一条sql,所以正常情况下不需要考虑更多的CPU.当然,你的系统中的对mysql的并发很高时,多核可以解决一 ...
随机推荐
- Qt操作Json小结
Qt操作Json 1.QJsonDocument 1.详细说明 QJsonDocument类提供了读写JSON文档的方法. QJsonDocument是一个封装了完整JSON文档的类,可以从基于UTF ...
- 通过 CancellationToken 提高 Web 性能
在 Web 开发中,经常会遇到这样的场景:用户发起一个请求,Web 服务器执行一些计算密集型的操作,等待结果返回给用户.这种情况下,如果用户在等待结果的过程中取消了请求,那么服务器端依然会继续执行计算 ...
- Django路由层之路由分发 名称空间 虚拟环境 视图层之三板斧 JsonRsponse对象 request对象获取文件 FBV与CBV CBV源码剖析 模板层
目录 路由层之路由分发 路由层之名称空间 方式1:名称空间 方式2:别名不冲突即可 虚拟环境 pycharm创建虚拟环境 命令行形式创建虚拟环境 视图层之三板斧 HttpRsponse render ...
- 使用浏览器inspect调试app
使用浏览器inspect调试app 在开发混合项目的过程中,常常需要在app环境排查问题,接口可以使用fiddler等工具来抓包,但是js错误就不好抓包了,这里介绍一种调试工具-浏览器. 1.调试过程 ...
- 从面试题入手,畅谈 Vue 3 性能优化
前言 今年又是一个非常寒冷的冬天,很多公司都开始人员精简.市场从来不缺前端,但对高级前端的需求还是特别强烈的.一些大厂的面试官为了区分候选人对前端领域能力的深度,经常会在面试过程中考察一些前端框架的源 ...
- 绿色版MySQL8.0.26安装流程
下载 5.7 8.0 官网 https://dev.mysql.com/downloads/mysql/ 国内镜像网站 https://developer.aliyun.com/mirror/ ...
- 【转载】EXCEL VBA 20个有用的ExcelVBA代码
1.显示多个隐藏的工作表 如果你的工作簿里面有多个隐藏的工作表,你需要花很多时间一个一个的显示隐藏的工作表. 下面的代码,可以让你一次显示所有的工作表 Sub UnhideAllWoksheets() ...
- C++获取含有中文字符的string长度
:前言 造车轮的时候要用到中文字符串的长度辨别,发现char的识别不准,进行了一番研究. > 开始研究 在Windows下,中文字符在C++中的内存占用为2字节,此时采用字符串长度获取函数得到的 ...
- HelloWorld的常见问题与Notepad++使用-程序注释与Hello World说明
HelloWorld的常见问题与Notepad++使用 编译和运行是两回事 编译:是指将我们编写的Java源文件翻译成JVM认识的class文件,在这个过程中, javac 编译器会检查我们 所写的程 ...
- Unity_UIWidgets - 组件Scaffold
UIWidgets - 组件Scaffold 各位兄弟姐妹,想通过Unity来开发UIWidgets的么,想通过UIWi的gets..来开发手机APP么??想么想么,哈哈哈哈哈哈哈哈. 好了,小黑不唠 ...