MySQL学习Day25——数据库其他调优策略

news2025/1/7 20:15:59

一、数据库调优的措施:

1.调优的目标:

(1)尽可能节省系统资源,以便系统可以提供更大负荷的服务

(2)合理的结构设计和参数调整,以提高用户操作的响应速度

(3)减少系统的瓶颈,提高MySQL数据库整体的性能;

2.如何定位调优:用户的反馈、日志分析、服务器资源使用监控、数据库内部状况监控

3.调优的维度和步骤:

(1)选择合适的DBMS:DBMS的选择关系到了后面的整个设计过程,所以第一步就是要选择适合的DBMS

(2)优化表设计:表的结构要尽量遵循三范式原则,如果查询的次数比较多可以采用反范式化进行优化,表字段的数据类型应该合理。

(3)优化逻辑查询:子查询优化、等价谓词重写、视图重写、条件优化、连接消除和嵌套连接消除等

(4)优化物理查询:合理使用表的索引

(5)使用Redis或者Memcached作为缓存

(6)库级优化:

a.读写分离:

b.数据分片:

二、优化MySQL服务器:

1.优化服务器硬件:服务器的硬件性能直接决定着MySQL数据库的性能,硬件的性能瓶颈直接决定MySQL数据库的运行速度和效率,针对性能瓶颈提高硬件配置,可以提高数据库的查询和更新速度。

(1)配置较大的内存:足够大的内存是提高MySQL数据库的性能方法之一,内存的速度比磁盘IO快很多,可以通过增加系统的缓冲区容量使得数据在内存中停留的时间更长,以减少磁盘的IO。

(2)配置高速磁盘系统

(3)合理分布磁盘IO:把磁盘IO分散在多个设备上,以减少资源竞争,提高并行操作能力

(4)配置多处理器:MySQL是多线程的数据库,多处理器可以同时执行多个线程。

2.优化MySQL的参数:通过优化MySQL的参数可以提高资源利用率,从而达到提高服务器性能的目的。主要的参数都在my.cnf或者my.ini文件的[mysqld]组中,配置完毕参数后需要重新启动MySQL服务才能生效。

(1)innodb_buffer_pool_size:表示InnoDB类型的表和索引的最大缓存。它不仅仅缓存索引数据,还会缓存表的数据。这个值越大,查询的速度就会越快。但是这个值太大会影响操作系统的性能。

(2)key_buffer_size:表示索引缓冲区的大小,索引缓冲区是所有的线程共亭。增加索引缓冲区可以得到更好处理的索引(对所有读和多重写)。key_buffer_size的大小取决于内存的大小。如果key_buffer_size太大,就会导致操作系统繁换页,也会降低系统性能。

(3)table_cache:表示同时打开表的个数,table_cache值越大,能够同时打开的表的个数越多。物理内存越大,但是该值越大会影响操作系统的性能。

(4)query_cache_size:表示查询缓冲区的大小。如果Qcache_lowmem_prunes的值非常大,则表明经常出现缓冲不够的情况,就要增加Query_cache_size的值;如果Qcache_hits的值非常大,则表明查询缓冲使用非常频繁,如果该值较小反而会影响效率,那么可以考虑不用查询缓存;MySQL8.0之后失效。该参数需要和query_cache_type配合使用。

(5)query_cache_type:当query_cache_type的值是0时,所有的查询都不使用查询缓存区。当该参数的值为1时,所有的查询都将使用查询缓存区,当该参数的值为2时,只有在查询语句中使用SQL_CACHE关键字查询才使用查询缓存区。使用查询缓存区可以提高查询的速度,这种方式只适用于修改操作少且经常执行相同的查询操作的情况。

(6)sort_buffer_size:表示每个需要进行排序的线程分配的缓冲区的大小。增加这个参数的值可以提高ORDER BY或GROUP BY操作的速度。

(7)join_buffer_size:表示联合査询操作所能使用的缓冲区大小,和sort_buffer_size一样该参数对应的分配内存也是每个连接独享。

(8)read_buffer_size:表示每个线程连续扫描时为扫描的每个表分配的缓冲区的大小(字节)。当线程从表中连续读取记录时需要用到这个缓冲区。

(9)innodb_flush_log_at_trx_commit:表示何时将缓冲区的数据写入日志文件,并且将日志文件写入磁盘中。该参数对于InnoDB引擎非常重要。该参数有3个值,分别为0、1和2,默认值为1。

a.innodb_flush_log_at_trx_commit的值为0:表示每秒1次的频率将数据写入日志文件并将日志文件写入磁盘。每个事务的commit并不会触发前面的任何操作。该模式速度最快,但不太安全,mysqld进程的崩溃会导致上一秒钟所有事务数据的丢失。

b.innodb_flush_log_at_trx_commit值为1:表示每次提交事务时将数据写入日志文件并将日志文件写入磁盘进行同步。该模式是最安全的,但也是最慢的一种方式。因为每次事务提交或事务外的指令都需要把日志写入(flush)硬盘。

c.innodb_flush_log_at_trx_commit值为2:表示每次提交事务时将数据写入日志文件,每隔1秒将日志文件写入磁盘。该模式速度较快。也比0安全,只有在操作系统崩溃或者系统断电的情况下,上一秒钟所有事务数据才可能丢失。

(10)innodb_log_buffer_size:是InnoDB存储引擎的事务日志所使用的缓冲区的大小。为了提高性能也是先将信息写入Innodb Log Buffer中,当满足innodb_flush_log_tnx_commit参数所设置的相应条件(或者日志缓冲区写满)之后,才会将日志写到文件(或者同步到磁盘)中。

(12)max_connections:表示允许连接到MySQL数据库的最大数量,默认值是151,连接数 不是越大越好,因为这些连接会浪费内存的资源。过多的连接可能会导致MySQL服务器僵死。

(13)back_log:用于控制MySQL监听TCP牆口时设置的积压请求栈大小,如果MySql的连接数达到max_connections时,新来的请求将会被存在堆栈中,以等待某一连接释放资源,该堆栈的数量即back_log,如果等待连接的数量超过back_log将不被授予连接资源。

(14)thread_cache_size:线程池缓存线程数量的大小,当客户端断开连接后将当前线程缓存起来,当在接到新的连接请求时快速响应无需创建新的线程。

(15)wait_timeout:指定一个请求的最大连接时间

(16)interactive_timeout:表示服务器在关闭连接前等待行动的秒数

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

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

相关文章

基于Springboot的无人智慧超市管理系统(有报告)。Javaee项目,springboot项目。

演示视频: 基于Springboot的无人智慧超市管理系统(有报告)。Javaee项目,springboot项目。 项目介绍: 采用M(model)V(view)C(controller)三层体系…

微软多兴趣召回:Octopus

Octopus: Comprehensive and Elastic User Representation for the Generation of Recommendation Candidates 背景: 多兴趣通道(channel)结构的多兴趣召回模型在兴趣通道数量上面存在两个问题 兴趣通道较少,不能充分学习到用户的多个兴趣。兴趣通道较…

力扣hot9---滑动窗口

题目: 先记录一下(没想到有生之年,还能):其实还能优化,后面会讲述优化思路 思路: 滑动窗口的大小就是固定的,就是len_p。那么依次将窗口从s的最左端向右滑动。在当下的窗口中&#x…

鸿蒙开发就业前景以及发展方向分析~

鸿蒙操作系统作为华为公司自主研发的操作系统,已经成为当下炙手可热的话题。作为一个全新的操作系统,鸿蒙开发为IT行业带来了巨大的就业机会。本文将围绕鸿蒙开发的就业前景以及发展方向展开讨论。 一、鸿蒙开发就业前景 随着鸿蒙操作系统的发布&#…

Windows快速删除大量文件

直接上命令 rmdir 磁盘:\文件夹名字\ /s /q /S 表示除目录本身外,还将删除指定目录下的所有子目录和文件。 /Q 表示安静模式,删除时不需要经过确认。 特别是vue项目中的node_modules,删除贼快!

【代码随想录算法训练营Day34】860.柠檬水找零;406.根据身高重建队列;452.用最少数量的箭引爆气球

❇️Day 34 第八章 贪心算法 part04 ✴️今日任务 860.柠檬水找零406.根据身高重建队列452.用最少数量的箭引爆气球 ❇️860.柠檬水找零 本题看上好像挺难,其实挺简单的,大家先尝试自己做一做。题目链接:https://leetcode.cn/problems/lem…

10W 音频功率放大电路芯片TDA2003,可用于汽车收音机及收录机中作音频功率放大器,内部具有短路保护和过热保护等功能

TDA2003 用于汽车收音机及收录机中作音频功率放大器。 采用 TO220B5 封装形式。 主要特点: ⚫ 内部具有短路保护和过热保护。内部具有地线开路、电源极性接 反和负载泄放电压反冲等保护电路。 ⚫ 输出电流大。 ⚫ 负载电阻可低至 1.6 。 …

【短时交通流量预测】基于单层BP神经网络

课题名称:基于单层BP神经网络的短时交通流量预测 版本时间:2023-04-27 代码获取方式:QQ:491052175 或者 私聊博主获取 模型简介: 城市交通路网中交通路段上某时刻的交通流量与本路段前几个时段的交通流量有关&…

Redis核心数据结构之SDS(一)

数据结构与对象 简单动态字符串 概述 Redis没有直接使用C语言传统的字符串表示(以空字符结尾的字符数组,简称C字符串),而是自己构建了一种名为简单动态字符串(Simple Dynamic String, SDS)的后向类型,并将SDS用作Redis的默认字符串表示。在…

算法比赛|赛制介绍| ACM, IOI赛制, OI赛制

&#x1f525;博客介绍&#xff1a; 27dCnc &#x1f3a5;系列专栏&#xff1a; <<数据结构与算法>> << 算法入门>> << C项目>> &#x1f3a5; 当前专栏: << 算法入门>> 专题 : 数据结构帮助小白快速入门算法 &#x1f4…

spring boot 字典使用,使用element-ui + vue

数据库表设计 type为1则代表字典的类型 type为2则是下拉框显示的值 id是雪花算法自动生成的 前端设计 基于vue-fast2设计 使用element-ui 异步获取数据 // 获取数据列表getDataList () {this.dataListLoading truethis.$http({url: this.$http.adornUrl(/sys/dict/list)…

C++ 模拟OJ

目录 1、1576. 替换所有的问号 2、 495. 提莫攻击 3、6. Z 字形变换 4、38. 外观数列 5、 1419. 数青蛙 1、1576. 替换所有的问号 思路&#xff1a;分情况讨论 ?zs&#xff1a;左边没有元素&#xff0c;则仅需保证替换元素与右侧不相等&#xff1b;z?s&#xff1a;左右都…

C语言:结构体(自定义类型)知识点(包括结构体内存对齐的热门知识点)

和黛玉学编程呀&#xff0c;大家一起努力呀............. 结构体类型的声明 回顾一下 struct tag { member-list; }variable-list; 创建和初始化 我们知道&#xff0c;在C语言中&#xff0c;对于一些数据是必须初始化的&#xff0c;但是结构体怎么创建并且初始化呢&#xff1…

绘图机器 - 华为OD统一考试(C卷)

OD统一考试&#xff08;C卷&#xff09; 分值&#xff1a; 100分 题解&#xff1a; Java / Python / C 题目描述 绘图机器的绘图笔初始位置在原点&#xff08;0, 0&#xff09;&#xff0c;机器启动后其绘图笔按下面规则绘制直线&#xff1a; 1&#xff09;尝试沿着横向坐标轴…

基于51单片机的智能睡眠呼吸检测系统[proteus仿真]

基于51单片机的智能睡眠呼吸检测系统[proteus仿真] 呼吸检测系统这个题目算是课程设计和毕业设计中常见的题目了&#xff0c;本期是一个基于51单片机的智能睡眠呼吸检测系统[proteus仿真] 需要的源文件和程序的小伙伴可以关注公众号【阿目分享嵌入式】&#xff0c;赞赏任意文…

【NR 定位】3GPP NR Positioning 5G定位标准解读(五)

前言 3GPP 标准网址&#xff1a;Directory Listing /ftp/ 【NR 定位】3GPP NR Positioning 5G定位标准解读&#xff08;一&#xff09;-CSDN博客 【NR 定位】3GPP NR Positioning 5G定位标准解读&#xff08;二&#xff09;-CSDN博客 【NR 定位】3GPP NR Positioning 5G定位…

远程调用--webClient

远程调用webClient 前言1、创建webClient2、准备数据3、执行请求4、接收返回响应到的数据整体代码 前言 非阻塞、响应式HTTP客户端 1、创建webClient WebClient client WebClient.create();2、准备数据 Map<String,String> params new HashMap<>();params.pu…

【Python】Python教师/学生信息管理系统 [简易版] (源码)【独一无二】

&#x1f449;博__主&#x1f448;&#xff1a;米码收割机 &#x1f449;技__能&#x1f448;&#xff1a;C/Python语言 &#x1f449;公众号&#x1f448;&#xff1a;测试开发自动化【获取源码商业合作】 &#x1f449;荣__誉&#x1f448;&#xff1a;阿里云博客专家博主、5…

#WEB前端

1.实验&#xff1a;vscode安装&#xff0c;及HTML常用文本标签 2.IDE&#xff1a;VSCODE 3.记录&#xff1a; &#xff08;1&#xff09;网页直接搜索安装vscode &#xff08;2&#xff09;打开vscode&#xff0c;在下图分别安装以下插件&#xff1a; Html Css Support …

《TCP/IP详解 卷一》第10章 UDP 和 IP 分片

目录 10.1 引言 10.2 UDP 头部 10.3 UDP校验和 10.4 例子 10.5 UDP 和 IPv6 10.6 UDP-Lite 10.7 IP分片 10.7.1 例子&#xff1a;IPV4 UDP分片 10.7.2 重组超时 10.8 采用UDP的路径MTU发现 10.9 IP分片和ARP/ND之间的交互 10.10 最大UDP数据报长度 10.11 UDP服务器…