Mysql故障和优化

一、MySQL故障 

 

二、MySQL优化

         1.硬件优化: 

        2.数据库设计与规划

1.提前估计数据量,使用什么存储引擎

2.数据库服务器专机专用,避免额外的服务可能导致的性能下降和不稳定性

3.增加多台服务器,以达到稳定、高效的效果。主从同步、负载均衡、高可用性集群

        3.MySQL配置文件

通常默认的 my.cnf 配置文件无法发挥出 MySQL 最高的性能

下面是物理内存为 32G 的数据库优化参数,具体从全局、二进制日志、主从、innodb、myisam 几个方面优化

1.默认 MySQL 使用的是系统时区,修改为北京时间,也就是所说的东八区

default-time-zone=+8:00

2.服务器关闭交互式连接前等待活动的秒数

interactive_timeout = 120

3.服务器关闭非交互连接之前等待活动的秒数

wait_timeout = 120

4.MySQL 服务器打开文件句柄数限制

open_files_limit = 10240

5.MySQL 默认的拼接最大长度为 1024 个字节,由于 1024 个字节会出现不够用的情况, 根据实际情况进行修改

group_concat_max_len = 102400

6.使用 mysql 用户运行

user=mysql

7.设置字符集为 utf8

character-set-server=utf8、init_connect='SET NAMES utf8'

8.如果系统在短时间内有很多连接,则需要增大该参数的值,该参数值指定到来的 TCP/IP 连接的监听队列的大小。默认值 50

back_log = 600

9.MySQL 允许最大的进程连接数,如果经常出现 Too Many Connections 的错误提示, 则需要增大此值

max_connections = 5000

10.设置每个主机的连接请求异常中断的最大次数

max_connect_errors = 6000

11.数据表调整缓冲区大小。它设置表高速缓存的数目

table_cache = 1024

12.指定表高速缓存的大小

table_open_cache = 2048

13.用户可以创建的内存表(memory table)的大小

max_heap_table_size = 256M

14.使用 skip-external-lockingMySQL 选项以避免外部锁定。该选项默认开启

external-locking = false

15.设置在网络传输中一次消息传输量的最大值。系统默认值为 1MB,最大值是 1GB,必须设置 1024 的倍数

max_allowed_packet = 32M

        4,MySQL语句优化

1.建表时表结构要合理,每个表不宜过大;在任何情况下均应使用最精确的类型

2.索引,建立合适的索引。

3.查询时尽量减少逻辑运算(与运算、或运算、大于小于某值的运算);

4.减少不当的查询语句,不要查询应用中不需要的列,比如说 select * from  等操作。

5.减小事务包的大小;

6.将多个小的查询适当合并成一个大的查询,减少每次建立/关闭查询时的开销;

7.将某些过于复杂的查询拆解成多个小查询,和上一条恰好相反

8.建立和优化存储过程来代替大量的外部程序交互

5.索引优化

  • 独立地使用列:尽量避免其参与运算,独立的列指索引列不能是表达式的一部分,也不能是函数的参数,在where条件中,始终将索引列单独放在比较符号的一侧,尽量不要在列上进行运算(函数操作和表达式操作)
  • 左前缀索引:构建指定索引字段的左侧的字符数,要通过索引选择性(不重复的索引值和数据表的记录总数的比值)来评估,尽量使用短索引,如果可以,应该制定一个前缀长度
  • 多列索引:AND操作时更适合使用多列索引,而非为每个列创建单独的索引
  • 选择合适的索引列顺序:无排序和分组时,将选择性最高放左侧
  • 只要列中含有NULL值,就最好不要在此列设置索引,复合索引如果有NULL值,此列在使用时也不会使用索引
  • 对于经常在where子句使用的列,最好设置索引
  • 对于有多个列where或者order by子句,应该建立复合索引
  • 对于like语句,以 % 或者 _ 开头的不会使用索引,以 % 结尾会使用索引
  • 尽量不要使用not in和<>操作,虽然可能使用索引,但性能不高
  • 不要使用RLIKE正则表达式会导致索引失效
  • 查询时,能不要就不用,尽量写全字段名,比如:select id,name,age from students;
  • 大部分情况连接效率远大于子查询
  • 在有大量记录的表分页时使用limit
  • 对于经常使用的查询,可以开启查询缓存
  • 多使用explain和profile分析查询语句
  • 查看慢查询日志,找出执行时间长的sql语句优化

6.操作系统优化

1.网卡 bonding 技术

2.设置TCP连接数量限制,优化系统打开文件的最大限制。

3.使用64位操作系统,64位系统可以分给单个进程更多的内存,计算更快 。禁用不必要启动的服务

4.文件系统调优,给数据仓库一个单独的文件系统,推荐使用XFS,一般效率更高、更可靠。

5.可以考虑在挂载分区时启用 noatime 选项。 #不记录访问时间最小化原则:

6.安装系统最小化。

7.开启程序服务最小化原则。

8.操作最小化原则。

9.登录最小化原则。

10.权限最小化。

7.MYSQL服务优化

保持每个表都不要太大,可以对大表做横切和纵切

对查询进行缓存

强制限制 mysql 资源设置,确保系统负载不会导致资源耗尽的情况出现。

8.my.cnf 内参数的优化

给 MySQL的资源太少,则 MySQL施展不开:给 MySQL的资源太多,可能会拖累整个 OS

---->40%资源给 OS, 60%-70% 给MySQL(内存和 CPU)

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

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

相关文章

Flask Response生成流式数据api;iter_lines,iter_content遍历区别

1、Flask Response生成流式数据api 注意return与def generate():是同级的 from flask import Flask, Responseapp Flask(__name__)app.route(/stream) def stream_data():def generate():for i in range(5):time.sleep(1)yield f"Data chunk {i}\0" # 在每个数据…

风控系统:通过净值及盈亏开启和关闭自动交易

一、风控对交易员的好处 帮助交易员执行交易纪律并保护他们的交易资金。 纪律风控&#xff1a;对不符合交易纪律的交易执行风控&#xff0c;对交易纪律性差的交易员执行约束操作。净值风控&#xff1a;对满足条件的净值执行风控&#xff0c;防止交易员的账户净值过度下降。手数…

Mysql的库函数

MySQL是一个流行的开源关系型数据库管理系统&#xff0c;它提供了大量的内置库函数&#xff0c;用于在查询时执行各种操作。这些函数可以帮助开发者在数据检索、转换和处理过程中实现更复杂的逻辑。 1 字符串函数 函数描述ASCII(s)返回字符串 s 的第一个字符的 ASCII 码。CHA…

Memory Analyzer Tool使用教程

下载地址&#xff1a;https://eclipse.dev/mat/previousReleases.php 下载JDK8对应的MAT版本 使用jps查看pid jps 使用jmap生成heap dump文件 jmap -dump:formatb,live,filexxx.bin <pid> 使用MAT打开heap dump文件 查看GC Roots

【Linux入门】Linux简史

Linux 是什么&#xff1f;Linux 是一款叫做操作系统的软件。 操作系统这款软件有什么样的意义呢&#xff1f;简单来说&#xff0c;比如有顾客买了一台笔记本电脑&#xff0c;这台笔记本电脑由电脑硬件组成&#xff0c;在这堆硬件上一定搭载了一款操作系统。正因为操作系统存在&…

ssm013小型企业办公自动化系统的设计和开发+vue

小型企业办公自动化系统的设计与实现 摘 要 互联网发展至今&#xff0c;无论是其理论还是技术都已经成熟&#xff0c;而且它广泛参与在社会中的方方面面。它让信息都可以通过网络传播&#xff0c;搭配信息管理工具可以很好地为人们提供服务。针对小型企业办公信息管理混乱&am…

git删除某次commit的代码

这里写目录标题 1.问题背景2.问题拆解尝试&#xff1a;a.使用git reset --hard HEAD &#xff08;不行&#xff0c;局限性太大&#xff09;尝试&#xff1a;b.使用git rebase -i HEAD &#xff08;可以&#xff0c;但push -f不太友好&#xff09;尝试&#xff1a;c.使用git rev…

C语言中,`while` 和 `for` 的区别

在C语言中&#xff0c;while 和 for 是两种循环结构&#xff0c;它们的作用是执行一段代码多次&#xff0c;直到满足某个条件为止。虽然它们可以互相替代&#xff0c;但通常根据具体的情况选择使用其中之一。 **区别&#xff1a;** 1. **语法结构&#xff1a;** - while 循…

ETL工具-nifi干货系列 第六讲 处理器JoltTransformJSON

1、处理器作用 使用Jolt转换JSON数据为其他结构的JSON,成功的路由到success,失败的failure。处理JSON的实用程序不是基于流的&#xff0c;因此大型JSON文档转换可能会消耗大量内存。 Jolt&#xff1a;JSON 到 JSON 转换库&#xff0c;用 Java 编写&#xff0c;其中转换的 &qu…

5.103 BCC工具之filegone.py解读

一,工具简介 filegone 追踪文件消失的原因,无论是被删除还是被重命名。 二,代码示例 #!/usr/bin/pythonfrom __future__ import print_function from bcc import BPF import argparse from time import strftime# arguments examples = """examples:./fil…

LINUX笔记温习

目录 DAY1 DAY2 day3&#xff1a; day4 day5 day6 day7 day8 day9 day10 day11 day12 day13 day14 day15 20day DAY1 1、多层级文件夹创建要带-p&#xff1b; 2、创建多文件&#xff0c;要先到该目录下才能创建(第一个目录必须存在才能有效建立)&#xff1b; D…

Golang 内存管理和垃圾回收底层原理(二)

一、这篇文章我们来聊聊Golang内存管理和垃圾回收&#xff0c;主要注重基本底层原理讲解&#xff0c;进一步实战待后续文章 垃圾回收&#xff0c;无论是Java 还是 Golang&#xff0c;基本的逻辑都是基于 标记-清理 的&#xff0c; 标记是指标记可能需要回收的对象&#xff0c…

2023年EI会议论文已见刊/检索进展汇总

2023年录用的会议论文已在SPIE、ACM、IEEE等出版社正式上线见刊&#xff0c;并已陆续完成EI Compendex数据库收录&#xff0c;详情如下&#xff1a; EIECT 2023——IEEE出版&#xff0c;并完成EI收录 会议信息&#xff1a; 第三届电子信息工程与计算机技术国际学术会议&…

深入浅出 Drools 规则引擎

目录 一、规则引擎简介 1.1 应用场景 1.2 Drools 规则引擎的特点 二、规则引擎集成 三、核心概念 3.1 规则文件的组成 3.2 模式匹配 3.2 规则属性 一、规则引擎简介 规则引擎是一种软件系统组件&#xff0c;设计目的是将业务决策逻辑从应用程序的主流程中解耦出来&#xff0…

SHELL(05)

SHELL(04) [ awk ] awk 编程语言 / 数据处理引擎 创造者的缩写是 : A,W,K 基于模式匹配检查输入文本 , 逐行处理并输出 通常用于Shell脚本中 , 获取指定的数据 单独使用时 , 可对文本数据做统计 grep 简单易用 , 功能少只能查 sed 功能齐全 , 搜索精度低 # 逐行处理 aw…

探索使用对比损失的孪生网络进行图像相似性比较

点击下方卡片&#xff0c;关注“小白玩转Python”公众号 简介 在计算机视觉领域&#xff0c;准确地测量图像相似性是一项关键任务&#xff0c;具有广泛的实际应用。从图像搜索引擎到人脸识别系统和基于内容的推荐系统&#xff0c;有效比较和查找相似图像的能力非常重要。Siames…

QA测试开发工程师面试题满分问答3: python的深拷贝和浅拷贝问题

在 Python 中&#xff0c;深拷贝&#xff08;deep copy&#xff09;和浅拷贝&#xff08;shallow copy&#xff09;是用于创建对象副本的两种不同方式。 浅拷贝是创建一个新的对象&#xff0c;该对象与原始对象的内容相同&#xff08;包括内部嵌套对象的引用&#xff09;&…

Higress 基于自定义插件访问 Redis

作者&#xff1a;钰诚 简介 基于 wasm 机制&#xff0c;Higress 提供了优秀的可扩展性&#xff0c;用户可以基于 Go/C/Rust 编写 wasm 插件&#xff0c;自定义请求处理逻辑&#xff0c;满足用户的个性化需求&#xff0c;目前插件已经支持 redis 调用&#xff0c;使得用户能够…

Day4:学习尚上优选项目

学习计划&#xff1a;完成尚硅谷的尚上优选项目 学习进度&#xff1a;尚上优选项目 知识点&#xff1a; 四、 搭建平台管理端前端环境 区域管理模块 代码生成器需求分析区域管理表设计搭建环境开发区域管理接口 整合nginx 安装nginx配置nginx功能测试 商品信息管理模块 需…

LeetCode刷题:无重复字符的最长子串 详解 【3/1000 第三题】

&#x1f464;作者介绍&#xff1a;10年大厂数据\经营分析经验&#xff0c;现任大厂数据部门负责人。 会一些的技术&#xff1a;数据分析、算法、SQL、大数据相关、python 作者专栏每日更新&#xff1a; LeetCode解锁1000题: 打怪升级之旅 LeetCode解锁1000题: 打怪升级之旅htt…