MySQL的InnoDB、MyISAM的参数及常见错误码

news2024/11/23 10:00:44

 1:参数

``参数,也被称之为MySQL的系统变量,这些变量是影响MySQL运行的关键,对每个参数做出不同调整,都有可能直接影响到线上数据库的性能,具体的完整系统参数可参考《MySQL官网文档-系统变量》,官方提供的系统参数数量大致如下:

 

通过xpath的方式提取数据,大概能够得知MySQL系统变量大概一千个上下,因此这里就不做过多的详细介绍,简单介绍一些较为常用的即可,其他具体的可参考前面给出的官网链接。

但是要注意,虽说MySQL中有一千多个对外暴露的系统参数,但并不是所有的参数都可以让用户调整,MySQL的系统参数分为了三类:
一类是由MySQL自己维护的参数,这类参数用户无法调整。
第二类是以配置文件的形式加载的参数,这类参数必须在MySQL停机的情况下才能更改。
第三类是运行时的系统参数,这类是可以由用户去做动态调整的。

咱们需要关心的重点就是第三类参数,那如何观察这类参数呢?方式如下:

  • show global variables;:查看全局所有用户级别可以看到的系统变量。

  • show session variables; | show variables;:查看当前会话的所有系统变量。

  • show variables like '%关键字%';:使用模糊查询搜索某个系统变量。

MySQL5.1MySQL8.0版本的执行结果如下:

通过xpath的方式提取数据,大概能够得知MySQL系统变量大概一千个上下,因此这里就不做过多的详细介绍,简单介绍一些较为常用的即可,其他具体的可参考前面给出的官网链接。

但是要注意,虽说MySQL中有一千多个对外暴露的系统参数,但并不是所有的参数都可以让用户调整,MySQL的系统参数分为了三类:
一类是由MySQL自己维护的参数,这类参数用户无法调整。
第二类是以配置文件的形式加载的参数,这类参数必须在MySQL停机的情况下才能更改。
第三类是运行时的系统参数,这类是可以由用户去做动态调整的。

咱们需要关心的重点就是第三类参数,那如何观察这类参数呢?方式如下:

  • show global variables;:查看全局所有用户级别可以看到的系统变量。

  • show session variables; | show variables;:查看当前会话的所有系统变量。

  • show variables like '%关键字%';:使用模糊查询搜索某个系统变量。

MySQL5.1MySQL8.0版本的执行结果如下:

 

可以很明显的从结果中得知:MySQL5.1版本中存在278个系统变量,MySQL8.0版本中存在557个系统变量,这仅仅只是社区版,而在商业版的MySQL中,其系统参数会更多,下面调出一些重点来聊一聊。

  • max_connectionsMySQL的最大连接数,超出后新到来的连接会阻塞或被拒绝。

  • version:当前数据库的版本。

  • ft_min_word_len:使用MyISAM引擎的表中,全文索引最小搜索长度。

  • ft_max_word_len:使用MyISAM引擎的表中,全文索引最大搜索长度。

  • ft_query_expansion_limitMyISAM中使用with query expansion搜索的最大匹配数。

  • innodb_ft_min_token_sizeInnoDB引擎的表中,全文索引最小搜索长度。

  • innodb_ft_max_token_sizeInnoDB引擎的表中,全文索引最大搜索长度。

  • optimizer_switchMySQL隐藏参数的开关。

  • skip_scan:是否开启索引跳跃扫描机制。

  • innodb_page_sizeInnoDB引擎数据页的大小。

  • tx_isolation:事务的隔离级别。

  • autocommit:事务自动提交机制。

  • innodb_autoinc_lock_mode:插入意向锁的工作模式。

  • innodb_lock_wait_timeoutInnoDB锁冲突时,阻塞的超时时间。

  • innodb_deadlock_detect:是否开启InnoDB死锁检测机制。

  • innodb_max_undo_log_size:本地磁盘文件中,Undo-log的最大值,默认1GB

  • innodb_rollback_segments:指定回滚段的数量,默认为1个。

  • innodb_undo_directory:指定Undo-log的存放目录,默认放在.ibdata文件中。

  • innodb_undo_logs:指定回滚段的数量,默认为128个,也就是之前的innodb_rollback_segments

  • innodb_undo_tablespaces:指定Undo-log分成几个文件来存储,必须开启innodb_undo_directory参数。

  • back_log:回滚日志的最大回撤长度(一条数据的最长版本链长度)。

  • innodb_undo_log_truncate:是否开启Undo-log的压缩功能,即日志文件超过一半时自动压缩,默认关闭。

  • innodb_flush_log_at_trx_commit:设置redo_log_buffer的刷盘策略,默认每次提交事务都刷盘。

  • innodb_log_group_home_dir:指定redo-log日志文件的保存路径,默认为./

  • innodb_log_buffer_size:指定redo_log_buffer缓冲区的大小,默认为16MB

  • innodb_log_files_in_group:指定redo日志的磁盘文件个数,默认为2个。

  • innodb_log_file_size:指定redo日志的每个磁盘文件的大小限制,默认为48MB

  • innodb_log_write_ahead_size:设置checkpoint刷盘机制每次落盘动作的大小。

  • innodb_log_compressed_pages:是否对Redo日志开启页压缩机制,默认ON

  • innodb_log_checksumsRedo日志完整性效验机制,默认开启。

  • log_bin:是否开启bin-log日志,默认ON开启,表示会记录变更DB的操作。

  • log_bin_basename:设置bin-log日志的存储目录和文件名前缀,默认为./bin.0000x

  • log_bin_index:设置bin-log索引文件的存储位置,因为本地有多个日志文件,需要用索引来确定目前该操作的日志文件。

  • binlog_format:指定bin-log日志记录的存储方式,可选Statment、Row、Mixed

  • max_binlog_size:设置bin-log本地单个文件的最大限制,最多只能调整到1GB

  • binlog_cache_size:设置为每条线程的工作内存,分配多大的bin-log缓冲区。

  • sync_binlog:控制bin-log日志的刷盘频率。

  • binlog_do_db:设置后,只会收集指定库的bin-log日志,默认所有库都会记录。

  • log-errorerror-log错误日志的保存路径和名字。

  • slow_query_log:设置是否开启慢查询日志,默认OFF关闭。

  • slow_query_log_file:指定慢查询日志的存储目录及文件名。

  • general_log:是否开启查询日志,默认OFF关闭。

  • general_log_file:指定查询日志的存储路径和文件名。

  • innodb_buffer_pool_sizeInnoDB缓冲区的大小。

  • innodb_adaptive_hash_index:是否开启InnoDB的自适应哈希索引机制。

  • innodb_compression_level:调整压缩的级别,可控范围在1~9,越高压缩效果越好,但压缩速度也越慢。

  • innodb_compression_failure_threshold_pct:当压缩失败的数据页超出该比例时,会加入数据填充来减小失败率,为0表示禁止填充。

  • innodb_compression_pad_pct_max:一个数据页中最大允许填充多少比例的空白数据。

  • innodb_log_compressed_pages:控制是否对redo-log日志的数据也开启压缩机制。

  • innodb_cmp_per_index_enabled:是否对索引文件开启压缩机制。

  • character_set_client:客户端的字符编码格式。

  • character_set_connection:数据库连接的字符编码格式。

  • character_set_database:数据库的字符编码格式。

  • character_set_results:返回的结果集的编码格式。

  • character_set_serverMySQL-Server的字符编码格式。

  • character_set_system:系统的字符编码格式。

  • collation_database:数据库的字符排序规则。

  • ......:剩下的就不再列出来了,大家可根据查询出的变量名,去官网文档查询释义即可。

 2:常见错误码

程序Bug、错误、异常.....,这些词汇天生与每位程序员挂钩,当一个程序出现问题时,用户第一时间想到的是这个平台的程序员不行,而身为开发者逃不开一点是:又得背锅和加班解决问题

   而MySQL作为整个系统的后方大本营,自然也无法避免会出现错误与异常,在MySQL内部其实定义了一系列错误码,当运行过程中发生错误,或执行语句时出现异常时,一般情况下都会向客户端返回错误码以及错误信息。

但往往很多时候有些错误咱们没见过,所以面对问题时难免有些束手无策,也正因为如此,本节将罗列MySQL中常见的错误码,当你碰到问题时可以直接通过错误码在此搜索,以此来定位问题出现的原因,以此进一步推导出问题的解决方案。

MySQL的错误信息由ErrorCode、SQLState、ErrorInfo三部分组成,即错误码、SQL状态、错误信息三部分组成,如下:

ERROR 1045 (28000): Access denied for user 'zhuzi'@'localhost' (using password: YES)

其中1045属于错误状态码,28000属于SQL状态,后面跟着的则是具体的错误信息,不过MySQL内部大致定义了两三千个错误码,其错误码的定义位于include/mysqld_error.h、include/mysqld_ername.h文件中,而SQLState的定义则位于include/sql_state.h文件中,所有的错误信息列表则位于share/errmsg.txt文件中,因此大家感兴趣的可自行编译MySQL源码查看。

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

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

相关文章

图表检测检测系统源码分享 # [一条龙教学YOLOV8标注好的数据集一键训练_70+全套改进创新点发刊_Web前端展示]

图表检测检测系统源码分享 [一条龙教学YOLOV8标注好的数据集一键训练_70全套改进创新点发刊_Web前端展示] 1.研究背景与意义 项目参考AAAI Association for the Advancement of Artificial Intelligence 项目来源AACV Association for the Advancement of Computer Vision …

通过写文件方式写入 Hive 数据

通过写文件方式写入 Hive 数据 Hive最简单的写入数据方式就是通过Hive Jdbc写入Hive数据,但这并不是写入Hive最高效的方法。 Hive通过读取相关Hdfs的文件来获取数据信息,而通过直接写入Hdfs文件数据达到写入Hive数据的效果,这是目前最高效的…

《python语言程序设计》2018版第8章第2题检测子串,你可以用str类中的find方法检测一个字符串

我先用in来做一次 def find_text(text_input1, text_input2):a str(text_input1)b str(text_input2)if b in a:print(f"The {b} is in {a} ")else:print(f"The {b} is not in {a} ")text_n1 "Welcome to shenyang" text_n2 "to"fi…

zdppy_cache缓存框架升级,支持用户级别的缓存隔离,支持超级管理员管理普通用户的缓存

启动服务 import zdppy_api as api import zdppy_cachekey1 "admin" key2 "admin"app api.Api(routes[*zdppy_cache.zdppy_api.cache(key1, key2, api) ])if __name__ __main__:import zdppy_uvicornzdppy_uvicorn.run(app, host"0.0.0.0",…

JVM-类加载过程

类加载过程是 Java 虚拟机 (JVM) 将 Java 代码编译后的字节码文件加载到内存中,并进行解析和验证,最终使程序能够运行的关键步骤。 类加载过程:加载->连接->初始化。连接过程又可分为三步:验证->准备->解析。 1. 加载…

Vitis AI 基本认知(Tiny-VGG 标签获取+预测后处理)

目录 1. 简介 2. 解析 2.1 获取标签 2.1.1 载入数据集 2.1.2 标签-Index 2.1.3 保存和读取类别标签 2.2 读取单个图片 2.3 载入模型并推理 2.3.1 tiny-vgg 模型结构 2.3.2 运行推理 2.4 置信度柱状图 2.5 预测标签 3. 完整代码 4. 总结 1. 简介 本博文在《Vitis …

Python酷库之旅-第三方库Pandas(105)

目录 一、用法精讲 456、pandas.DataFrame.rdiv方法 456-1、语法 456-2、参数 456-3、功能 456-4、返回值 456-5、说明 456-6、用法 456-6-1、数据准备 456-6-2、代码示例 456-6-3、结果输出 457、pandas.DataFrame.rtruediv方法 457-1、语法 457-2、参数 457-3…

云计算实训38——docker网络、跨主机容器之间的通讯

一、docker⽹络 1.桥接--bridge 所有容器连接到桥就可以使⽤外⽹,使⽤nat让容器可以访问外⽹ 使⽤ ip a s指令查看桥,所有容器连接到此桥,ip地址都是 172.17.0.0/16 ⽹段,桥是启动docker服务后出现,在centos使⽤ br…

centos安装mysql8.0版本,并且实现远程连接

一、 卸载mysql 查看mysql安装情况 rpm -qa | grep -i mysql 删除上图中所有信息 rpm -ev mysql-community-release-el7-5.noarch --nodeps 再次查询,没有数据,则为删除干净 find / -name mysql rm -rf /var/lib/mysql 将机器上的所有mysql相关文…

一篇文章带你真正了解接口测试(附视频教程+面试真题)

一、什么是接口测试? 所谓接口,是指同一个系统中模块与模块间的数据传递接口、前后端交互、跨系统跨平台跨数据库的对接。而接口测试,则是通过接口的不同情况下的输入,去对比输出,看看是否满足接口规范所规定的功能、…

79.位域

目录 一.位域的概念 二.语法格式 三.无名位域 四.视频教程 一.位域的概念 有些数据在存储的时候并不需要一个完整的字节。比如使用一个变量表示开关的状态,开关只有开和关俩个状态,所以只需要使用0和1表示,也就是一个二进制位。所以这时候…

前端提升之——chrome浏览器插件开发指南——chrome插件介绍及入门

前言 有一天突发奇想,想要自己写一个浏览器插件玩一玩,并不做用于商业或者其他方面,仅仅用于自我技术的练习和提升。 这里的浏览器我选择Chrome,当然chrome插件同样适用于微软自带的 Microsoft Edge 在当今发达的互联网环境下&…

云微客短视频矩阵如何打造多元化的视频内容呢?

随着抖音、快手等平台的兴起,短视频已经成为了人们日常生活的一部分,也有不少企业通过短视频赛道实现了品牌曝光和获客引流,但是单一的视频内容终究很难长久的吸引用户,所以如何打造多元化的视频内容呢? 在这个快节奏的…

【二叉树】OJ题目

🌟个人主页:落叶 目录 单值⼆叉树 【单值二叉树】代码 相同的树 【相同二叉树】代码 对称⼆叉树 【对称二叉树】代码 另一颗树的子树 【另一颗树的子树】代码 二叉树的前序遍历 【二叉树前序遍历】代码 二叉树的中序遍历 【二叉树中序遍历】…

【数据结构】栈和队列相互实现

目录 栈实现队列 思路 入队列 出队列 获取队头元素 队列实现栈 思路 入栈 出栈 获取栈顶元素 完整代码 栈实现队列 队列实现栈 栈实现队列 思路 栈的特点是 先进后出, 队列的特点是 先进新出,这就意味着我们无法通过一个栈来实现队列&…

YOLOv5改进 | 融合改进 | C3融合Efficient Multi-Scale Conv Plus【完整代码】

秋招面试专栏推荐 :深度学习算法工程师面试问题总结【百面算法工程师】——点击即可跳转 💡💡💡本专栏所有程序均经过测试,可成功执行💡💡💡 专栏目录: 《YOLOv5入门 改…

生成式AI扩散模型-Diffusion Model【李宏毅2023】概念讲解、原理剖析笔记

目录 一、Diffusion的基本概念和运作方法 1.Diffusion Model是如何运作的? 2.Denoise模块内部正在做的事情 如何训练Noise predictor? 1)Forward Process (Diffusion Process) 2)noise predictor 3.Text-to-Image 4.两个A…

MySQL必会知识精华3(使用MySQL)

我们的目标是:按照这一套资料学习下来,大家可以完成数据库增删改查的实际操作。轻松应对面试或者笔试题中MySQL相关题目 上篇文章我们先做一下数据库的基础知识以及MySQL的简单介绍。本篇文章主要连接使用MySQL的相关知识。相对简单,争取做到…

Datawhle X 李宏毅苹果书AI夏令营深度学习笔记之——局部最小值与鞍点

深度学习中优化神经网络是一个重要的问题,我们经常沮丧地发现到了一个节点,不管参数怎么更新,训练的损失都不会下降,神经网络似乎训练不起来了。这可能和损失函数收敛在局部最小值与鞍点有关。 一、 局部最小值(local…

‌蜘蛛的工作原理及蜘蛛池的搭建与优化

蜘蛛的工作原理主要包括跟踪网页链接、‌采用一定的爬行策略遍历互联网,‌以及将新内容添加到引擎的索引中。‌具体来说:‌ 跟踪网页链接‌:‌蜘蛛会从一个或多个初始URL开始,‌通过这些URL发现新的链接,‌并将这些链接…