MySQL性能优化 一、系统配置优化

数据库优化纬度有四个:
硬件升级、系统配置、表结构设计、SQL语句及索引。
image.png

优化选择:

  • 优化成本:硬件升级 > 系统配置 > 表结构设计 > SQL语句及索引
  • 优化效果:硬件升级 < 系统配置 < 标结果设计 < SQL语句及索引

1.保证从内存中读取数据

MySQL会在内存中保存一定的数据,通过LRU算法将不常访问的数据保存在硬盘文件中。
尽可能的扩大内存中的数量,将数据保存在内存中,从内存中读取数据,可以提升MySQL性能
扩大 innodb_buffer_pool_size,能够全然从内存中读取数据。最大限度降低磁盘操作。

确定 innodb_buffer_pool_size 足够大的方法:

show global status like 'innodb_buffer_pool_pages_%'

image.png
innodb_buffer_pool_size 默认为128M,理论上可以扩大到内存的3/4或4/5
修改my.cnf
innodb_buffer_size = 750M
如果是专用的MySQL Server 可以禁用SWAP

#查看swap
cat /proc/swaps#关闭所有交换设备和文件
swapoff -a

2.数据预热

默认情况,仅仅有某条数据被读取一次,才会缓存在innodb_buffer_pool
所以,数据库刚刚启动,须要进行数据预热,将磁盘上的全部数据缓存到内存中
数据预热能够提高读取速度

1.对于InnoDB数据库,进行数据预热的脚本是:

SELECT DISTINCT
CONCAT('SELECT ',ndxcollist,' FROM ',db,'.',tb,' ORDER BY ',ndxcollist,';') SelectQueryToLoadCache
FROM
(SELECTengine,table_schema db,table_name tb,index_name,GROUP_CONCAT(column_name ORDER BY seq_in_index)ndxcollistFROM(SELECTB.engine,A.table_schema,A.table_name,A.index_name,A.column_name,A.seq_in_indexFROMinformation_schema.statistics A INNER JOIN(SELECT engine,table_schema,table_nameFROM information_schema.tables WHEREengine='InnoDB') B USING (table_schema,table_name)WHERE B.table_schema NOT IN ('information_schema','mysql')ORDER BY table_schema,table_name,index_name,seq_in_index) AGROUP BY table_schema,table_name,index_name
) AA
ORDER BY db,tb;

将该脚本保存为:loadtomem.sql

2.执行命令

mysql -uroot -proot -AN < /root/loadtomem.sql > /root/loadtomem.sql

3.在需要数据预热时,比如重启数据库
执行命令

mysql -uroot < /root/loadtomem.sql > /dev/null 2>&1

3.降低磁盘写入次数

  • 增大redolog,减少落盘次数
    • innodb_log_file_size 设置为 0.25*innodb_buffer_pool_size
  • 通用查询日志、慢查询日志可以不开,bin-log开
    • 生成中不开通用查询日志,遇到性能问题开慢查询日志
  • 写redolog策略 innodb_flush_log_at_trx_commit 设置为0或2
    • 如果不涉及非常高的安全性(金融系统),或者基础架构足够安全,或者事务都非常小,都能够用0或者2来减少磁盘操作

4.提高磁盘读写性能

使用SSD或者内存磁盘

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/42789.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

深圳网站设计一般流程是怎样的

深圳作为中国的IT产业中心&#xff0c;拥有众多优秀的网站设计公司以及专业的网站设计团队。对于一个深圳的网站设计项目&#xff0c;一般的流程是按照以下步骤进行的&#xff1a; 1. 确立需求&#xff1a;首先&#xff0c;网站设计公司需要和客户充分沟通&#xff0c;了解客户…

在信创环境中信创沙箱扮演一个什么样的角色?

在信创领域中&#xff0c;沙箱技术扮演着举足轻重的角色&#xff0c;其不仅为信息安全提供了强有力的保障&#xff0c;更为数据防泄密提供了有效手段。随着信息技术的飞速发展&#xff0c;数据安全已成为国家、企业乃至个人关注的重点。信创沙箱技术作为其中的佼佼者&#xff0…

深度网络现代实践 - 深度前馈网络之反向传播和其他的微分算法篇-续

序言 反向传播&#xff08;Backpropagation&#xff0c;简称backprop&#xff09;是神经网络训练过程中最关键的技术之一&#xff0c;尤其在多层神经网络中广泛应用。它是一种与优化方法&#xff08;如梯度下降法&#xff09;结合使用的算法&#xff0c;用于计算网络中各参数的…

瑞萨RA6M3开发实践-UART实践-亲测有效 || 过程中遇到的问题

目录 写在前面 一、开发环境 二、编译下载 三、遇到的错误及解决方法 四、开启串口uart4的打印结果 写在前面 在看这编之前要是不太懂可参考HMI-Board (rt-thread.org)&#xff0c;本文章为在此基础上进行相应开发。 一、开发环境 rtthread studio版本2.2.6&#xff0c;…

原生Ajax技术的执行流程,用火山写作创作的,总感觉差点意思。

启动原生Ajax操作可遵循以下步骤&#xff1a; 首先&#xff0c;我们需要构建一个XMLHttpRequest对象以实现与服务器的有效互动。这个过程往往是借助于调用XMLHttpRequest对象的构造函数得以实现。 接下来&#xff0c;我们有必要对请求细节进行设定&#xff0c;包括明确请求方法…

叹为观止|四款让人赞不绝口的优质软件,越用越上瘾

不说闲话直接上狠货&#xff0c;下面神仙软件&#xff0c;都值得使用。 Smart Defrag 说起电脑运行慢或者抽风&#xff0c;磁盘碎片就是让电脑变得又卡又不稳定的元凶之一。 不过Smart Defrag就算是新手小白也能操作&#xff0c;它里面藏着一个超强的碎片整理引擎&#xff0…

一.2.(5)共射、共集、共基三种基本放大电路的静态及动态分析;

共什么的问题&#xff1a;共什么取决于输入输出&#xff0c;共剩下的那一极 1.基本共射放大电路 见前面章节&#xff0c;不做累述 2.基本共集放大电路 列KVL方程&#xff0c;求解 AU1&#xff0c;所以又叫射极跟随器 Ib是流入基极的电流&#xff0c;Ii是从输入交流信号源流出的…

SpringBoot源码阅读(1)——环境搭建

SpringBoot官网 官网 https://spring.io/projects/spring-boot 代码仓库 github&#xff1a;https://github.com/spring-projects/spring-boot gitee: https://gitee.com/mirrors/spring-boot 下载代码 git clone https://gitee.com/mirrors/spring-boot.git下载的代码中有些…

CnosDB:深入理解时序数据修复函数

CnosDB是一个专注于时序数据处理的数据库。CnosDB针对时序数据的特点设计并实现了三个强大的数据修复函数&#xff1a; timestamp_repair – 对时间戳列进行有效修复&#xff0c;支持插入、删除、不变等操作。value_repair – 对值列进行智能修复&#xff0c;根据时间戳间隔和…

【源代码】srm供应商管理系统,招标管理系统,在线询价管理系统

前言&#xff1a; 随着互联网和数字技术的不断发展&#xff0c;企业采购管理逐渐走向数字化和智能化。数字化采购平台作为企业采购管理的新模式&#xff0c;能够提高采购效率、降低采购成本、优化供应商合作效率&#xff0c;已成为企业实现效益提升的关键手段。系统获取平台私…

干冰运输与存储中的温度监测:确保药品安全与合规性

在制药行业&#xff0c;干冰对于运输和储存对温度敏感的药品&#xff0c;如原料药API、疫苗、冻干物质和人体组织样本等至关重要。虹科ELPRO LIBERO系列干冰温度记录仪&#xff0c;能够为您提供专业的解决方案&#xff0c;定期监测和记录干冰运输和存储过程中的温度&#xff0c…

基于Java+SpringMvc+Vue技术的就医管理系统设计与实现系统(源码+LW+部署讲解)

目录 界面展示 第六章 部分代码实现 6.1 Spring boot 配置代码 6.2 用户管理及登录登出代码 6.3 Md5 加密算法代码 6.4 部分数据库代码 六、论文参考&#xff1a; 七、其他案例&#xff1a; 系统介绍&#xff1a; 就医管理系统&#xff0c;也称为医院管理系统&#…

14-21 剑和远方1 - AI历史及简单神经网络的工作原理

初始 “我们需要走得更深”这句台词出自电影《盗梦空间》。这是在讨论深入梦境更深层次时说的&#xff0c;暗示需要探索梦境的更深层次。虽然这似乎是不可能的&#xff0c;但它传达的理念是&#xff0c;要创造一个新的世界&#xff0c;就必须冒险进入更深的层次。 电影《盗梦空…

docker安装oracle 11g

最近把一些常用数据库都移到docker了&#xff0c;而且是windows下&#xff0c;很是方便。偶尔还是要用一下Oracle&#xff0c;今天就试一下安装oracle 11g 在docker上。 一、搜索并拉取镜像 docker search oracle_11gdocker pull ![在这里插入图片描述](https://i-blog.csdni…

CDGA|数据治理:突破“采集难、应用难”的困境

随着数字化时代的来临&#xff0c;数据已成为企业最宝贵的资产之一。然而&#xff0c;如何有效地采集和应用这些数据&#xff0c;却成为众多企业面临的一大挑战。数据治理作为一种全面的数据管理框架&#xff0c;为解决数据采集难、应用难等问题提供了有效途径。 数据采集难的挑…

FuTalk设计周刊-Vol.064

#AI漫谈 热点捕手 1.可灵视频模型Web 端功能上线 文生视频&#xff1a;画质升级、单次10s视频生成&#xff1b;图生视频&#xff1a;画质提升、支持自定义首尾帧&#xff1b;运镜控制&#xff1a;提供丰富的镜头控制选项&#xff0c;预设多种大师级镜头模式。在限免期间&…

CUTS 多粒度分割 + 局部图像块对比学习: 无需大量标注数据 + 多尺度病变识别 + 解决医学图像不同仪器成像差异

CUTS 多粒度分割 局部图像块对比学习&#xff1a; 无需大量标注数据 多尺度病变识别 解决医学图像不同仪器成像差异 提出背景CUTS 框架(A) 总览(B) 像素中心的图像块嵌入(C) 图像内对比图像块选择(D) 扩散凝结粗粒化(E) 多粒度分割 解法拆解子解法1&#xff1a;多粒度分割子…

应用层协议原理——因特网提供的运输服务

我们已经考虑了计算机网络能够一般性地提供的运输服务。现在我们要更为具体地考察由因特网提供的运输服务类型。因特网(更一般的是TCP/IP网络)为应用程序提供两个运输层协议&#xff0c;即UDP和TCP。当软件开发者为因特网创建一个新的应用时&#xff0c;首先要做出的决定是&…

我是售前工程师转大模型了,不装了我摊牌了

有无售前工程师的朋友&#xff0c;心里的苦谁懂呀&#xff0c;售前工程师是项目开发人员与业务销售人员的桥梁&#xff0c;在业务销售人员眼中&#xff0c;他们是技术人员&#xff0c;在项目实施中的开发人员眼中&#xff0c;他们是专注技术的销售人员&#xff0c;在用户眼中&a…

【运算放大器学习】

运算放大器学习 运放的选型一般主要需要观察以下几个参数&#xff0c;下面一起来理解一下几个核心参数的意义&#xff1b;今天说 输入失调电压 、失调电压温漂 、 偏置电流 、 失调电流几个参数&#xff1b; 放大器的几个主要参数 输入失调电压失调电压温漂偏置电流失调电流…