Mysql8.4参考手册走读(六)

MySQL 8.4 常见问题解答:服务器 SQL 模式

问题答案
什么是服务器 SQL 模式?服务器 SQL 模式定义了 MySQL 应支持的 SQL 语法和它应该执行哪种类型的数据验证检查。这使在不同环境中使用 MySQL 变得更加容易,并且将 MySQL 与其他数据库服务器一起使用。
有多少种服务器 SQL 模式?每种模式都可以独立打开和关闭。请参见第 7.1.11 节 “服务器 SQL 模式”,以获取可用的完整列表模式。
如何确定服务器 SQL 模式?您可以使用 --sql-mode 选项设置默认 SQL 模式(用于 mysqld 启动)。使用语句 SET [全球
模式是否依赖于数据库或连接?模式未链接到特定数据库。可以设置模式本地到会话(连接),或全局到服务器。您可以使用 SET 更改这些设置 [全球
严格模式的规则可以扩展吗?当我们提到严格模式时,我们的意思是模式,其中至少启用了 TRADITIONAL、STRICT_TRANS_TABLES 或 STRICT_ALL_TABLES 模式之一。选项可以组合,因此您可以向模式添加限制。
严格模式会影响性能吗?对某些设置的输入数据进行密集验证与未完成验证相比,需要更多时间。虽然性能影响不是那么大,如果你不需要这样验证(也许您的应用程序已经处理了所有 this),那么MySQL可以选择离开严格模式禁用。但是,如果您确实需要它,严格模式可以提供这种验证。
MySQL 8.4时的默认服务器SQL模式是什么已安装?MySQL 8.0 中的默认 SQL 模式包括以下模式:ONLY_FULL_GROUP_BY、STRICT_TRANS_TABLES、NO_ZERO_IN_DATE、NO_ZERO_DATE、ERROR_FOR_DIVISION_BY_ZERO、和NO_ENGINE_SUBSTITUTION。
  1. ONLY_FULL_GROUP_BY: 当设置此变量时,MySQL将拒绝那些在SELECT语句中使用了GROUP BY子句但未包含所有非聚合列的查询。

  2. STRICT_TRANS_TABLES: 此变量启用严格模式,这意味着如果数据在事务中被更改,则不能提交事务。这对于确保数据的完整性非常重要。

  3. NO_ZERO_IN_DATE: 此变量禁止在日期值中使用零。如果尝试插入一个包含零的日期,则会生成一个错误。

  4. NO_ZERO_DATE: 此变量禁止使用零作为日期值。如果尝试插入一个零日期,则会生成一个错误。

  5. ERROR_FOR_DIVISION_BY_ZERO: 此变量指定如果除数为零,则应生成错误而不是返回NULL。

  6. NO_ENGINE_SUBSTITUTION: 此变量指定如果所需的存储引擎不可用,则不应使用不同的存储引擎。相反,应生成错误。

  7. 禁用表达式:这是SQL中的一个概念,它指的是在查询中不允许使用的特定表达式或函数。例如,某些数据库系统可能不允许在WHERE子句中使用聚合函数。

MySQL 8.4 常见问题解答:复制

问题答案
副本必须始终连接到源吗?不,它没有。复制副本可能会关闭或保持断开连接数小时甚至数天,然后重新连接并赶上更新。例如,您可以设置源/副本拨号链路上的关系,其中链路仅处于打开状态零星和短时间。含义也就是说,在任何给定时间,都无法保证副本与源同步,除非您采取一些特殊措施。
我必须在源和副本上启用联网才能启用复制吗?是的,必须在源和副本上启用网络。如果未启用网络,副本无法连接到源并传输二进制日志。验证skip_networking系统变量尚未在配置文件中启用服务器。
如何知道副本与源副本相比有多晚?换句话说,我怎么知道最后一句话的日期被副本复制?检查SHOW REPLICA|SLAVE STATUS输出中的列
如何强制源阻止更新,直到副本赶上?使用以下过程:在源上,执行以下语句: mysql> FLUSH TABLES WITH READ LOCK; mysql> SHOW MASTER STATUS;记录复制坐标(当前二进制日志文件名和位置)来自 SHOW 语句的输出。在副本上,发出以下语句,其中 SOURCE_POS_WAIT() 或 MASTER_POS_WAIT()函数的参数是在上一步: mysql> SELECT MASTER_POS_WAIT(‘log_name’, log_pos); 或从MySQL 8.0.26: mysql> SELECT SOURCE_POS_WAIT(‘log_name’, log_pos);SELECT 语句块直到副本到达指定的日志文件,并且位置。此时,副本与源和语句返回。在源上,发出以下语句以启用源再次开始处理更新: mysql> UNLOCK TABLES;
设置双向时应注意哪些问题复制?MySQL复制目前不支持任何锁定源和副本之间的协议,以保证原子性分布式(跨服务器)更新。换句话说,它是客户端A可以对协源1进行更新,并进行同时,在它传播到客户端B的共同源2之前可以对Co-source2进行更新,使客户端A的工作方式与在共同源1上的工作方式不同。因此,当客户端A的更新使其进入共同源2,它产生与共同源1上的表不同,即使在Co-Source2的所有更新之后,也传播。这意味着您不应该链接两个服务器在双向复制关系中一起,除非你是确保您的更新可以按任何顺序安全地进行,或者除非您可以在客户端代码中以某种方式处理错误排序的更新。您还应该意识到,双向复制确实可以就更新而言,性能不会提高太多(如果有的话)。每个服务器必须执行相同数量的更新,就像你有一个服务器一样。唯一的区别是锁争用少了一点,因为源自另一台服务器的更新在一台服务器中序列化复制线程。甚至这种好处也可能被网络所抵消延误。
如何使用复制来提高系统的性能?将一台服务器设置为源,并将所有写入定向到该服务器。然后,根据预算配置任意数量的副本,并机架空间的机架空间并在源和副本之间分配负载。您也可以使用–skip-innodb选项启动副本,启用low_priority_updates系统变量,并设置delay_key_write系统变量以提高副本结束的速度。在这种情况下,副本使用非事务表而不是表来获得更快的速度消除事务开销。ALL MyISAM InnoDB
在我自己的应用程序中准备客户端代码时应该怎么做使用性能增强复制?请参见使用复制作为横向扩展解决方案的指南,第19.4.5节“使用复制进行横向扩展”。
MySQL复制何时以及在多大程度上可以提高性能我的系统?MySQL复制对于处理频繁读取和不频繁写入。从理论上讲,通过使用单源/多副本设置,可以扩展系统通过添加更多副本,直到网络用完为止带宽,或者您的更新负载增长到以下点源无法处理它。确定在添加之前可以使用的副本数福利开始趋于平稳,您可以提高多少您网站的性能,您必须了解您的查询模式,以及通过对典型源和典型副本进行基准测试。这里的示例显示了一个相当简化的计算复制可以得到什么假设系统。let并表示读取和写入的次数每秒。reads writes
如何判断复制源服务器是否正在使用基于语句还是基于行的二进制日志记录格式?检查binlog_format系统变量的值: mysql> SHOW VARIABLES LIKE ‘binlog_format’;显示的值始终是、或之一。对于模式,使用基于语句的日志记录默认情况下,但复制会自动切换到基于行在某些情况下进行日志记录(例如不安全语句)下进行日志记录。为有关何时可能发生这种情况的信息,请参见第7.4.4.3节“混合二进制日志记录格式”。STATEMENT ROW MIXED
如何告诉副本使用基于行的复制?副本会自动知道要使用哪种格式。
如何防止GRANT和REVOKE语句要复制到复印机?使用–replicate-wild-ignore-table=mysql.%选项启动服务器以忽略数据库中表的复制。
复制是否适用于混合操作系统(例如,源代码在Linux上运行,而副本在macOS上运行,并且Windows)?是的。
复制是否适用于混合硬件体系结构(例如,源在64位计算机上运行,而副本在32位机器上运行)?是的。
副本必须始终连接到源吗?不,它没有。复制副本可能会关闭或保持断开连接数小时甚至数天,然后重新连接并赶上更新。例如,您可以设置源/副本拨号链路上的关系,其中链路仅处于打开状态零星和短时间。含义也就是说,在任何给定时间,都无法保证副本与源同步,除非您采取一些特殊措施。
我必须在源和副本上启用联网才能启用复制吗?是的,必须在源和副本上启用网络。如果未启用网络,副本无法连接到源并传输二进制日志。验证skip_networking系统变量尚未在配置文件中启用服务器。
如何知道副本与源副本相比有多晚?换句话说,我怎么知道最后一句话的日期被副本复制?检查 SHOW 的输出 复制品
如何强制源阻止更新,直到副本赶上?使用以下过程:在源上,执行以下语句: mysql> FLUSH TABLES WITH READ LOCK; mysql> SHOW MASTER STATUS;记录复制坐标(当前二进制日志文件名和位置)来自 SHOW 语句的输出。在副本上,发出以下语句,其中 SOURCE_POS_WAIT() 或 MASTER_POS_WAIT()函数的参数是在上一步: mysql> SELECT MASTER_POS_WAIT(‘log_name’, log_pos); 或从MySQL 8.0.26: mysql> SELECT SOURCE_POS_WAIT(‘log_name’, log_pos);SELECT 语句块直到副本到达指定的日志文件,并且位置。此时,副本与源和语句返回。在源上,发出以下语句以启用源再次开始处理更新: mysql> UNLOCK TABLES;
设置双向时应注意哪些问题复制?MySQL复制目前不支持任何锁定源和副本之间的协议,以保证原子性分布式(跨服务器)更新。换句话说,它是客户端A可以对协源1进行更新,并进行同时,在它传播到客户端B的共同源2之前可以对Co-source2进行更新,使客户端A的工作方式与在共同源1上的工作方式不同。因此,当客户端A的更新使其进入共同源2,它产生与共同源1上的表不同,即使在Co-Source2的所有更新之后,也传播。这意味着您不应该链接两个服务器在双向复制关系中一起,除非你是确保您的更新可以按任何顺序安全地进行,或者除非您可以在客户端代码中以某种方式处理错误排序的更新。您还应该意识到,双向复制确实可以就更新而言,性能不会提高太多(如果有的话)。每个服务器必须执行相同数量的更新,就像你有一个服务器一样。唯一的区别是锁争用少了一点,因为源自另一台服务器的更新在一台服务器中序列化复制线程。甚至这种好处也可能被网络所抵消延误。
如何使用复制来提高系统的性能?将一台服务器设置为源,并将所有写入定向到该服务器。然后,根据预算配置任意数量的副本,并机架空间的机架空间并在源和副本之间分配负载。您也可以使用–skip-innodb选项启动副本,启用low_priority_updates系统变量,并设置delay_key_write系统变量以提高副本结束的速度。在这种情况下,副本使用非事务表而不是表来获得更快的速度消除事务开销。ALL MyISAM InnoDB
在我自己的应用程序中准备客户端代码时应该怎么做使用性能增强复制?请参见使用复制作为横向扩展解决方案的指南,第19.4.5节“使用复制进行横向扩展”。
MySQL复制何时以及在多大程度上可以提高性能我的系统?MySQL复制对于处理频繁读取和不频繁写入。从理论上讲,通过使用单源/多副本设置,可以扩展系统通过添加更多副本,直到网络用完为止带宽,或者您的更新负载增长到以下点源无法处理它。确定在添加之前可以使用的副本数福利开始趋于平稳,您可以提高多少您网站的性能,您必须了解您的查询模式,以及通过对典型源和典型副本进行基准测试。这里的示例显示了一个相当简化的计算复制可以得到什么假设系统。let并表示读取和写入的次数每秒。reads writes
如何判断复制源服务器是否正在使用基于语句还是基于行的二进制日志记录格式?检查binlog_format系统变量的值: mysql> SHOW VARIABLES LIKE ‘binlog_format’;显示的值始终是、或之一。对于模式,使用基于语句的日志记录默认情况下,但复制会自动切换到基于行在某些情况下进行日志记录(例如不安全语句)下进行日志记录。为有关何时可能发生这种情况的信息,请参见第7.4.4.3节“混合二进制日志记录格式”。STATEMENT ROW MIXED
如何告诉副本使用基于行的复制?副本会自动知道要使用哪种格式。
如何防止GRANT和REVOKE语句要复制到复印机?使用–replicate-wild-ignore-table=mysql.%选项启动服务器以忽略数据库中表的复制。
复制是否适用于混合操作系统(例如,源代码在Linux上运行,而副本在macOS上运行,并且Windows)?是的。
复制是否适用于混合硬件体系结构(例如,源在64位计算机上运行,而副本在32位机器上运行)?是的。

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

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

相关文章

MySQL(7)内外连接+索引

目录 1.内外连接; 2. 索引; 1.内外连接: 1.1内连接: 语法: select 字段 from 表名 inner join 表名 on 字段限制; 1.2 外连接: 分为左右外连接; (1)左外连接: 语法: select * from 表名 left join 表名 on 字段限制. 🌰查询所有学生的成绩,如果这个学生…

【C++】编程新思想,通过封装新的类创建新的数据类型

我们可以通过封装一个新的C++类来实现新的数据类型的定义。 目录 优点: 主要方法: show(); reset(); use(); change(); operator++(): operator++(int); operator--() ; self_increase(); self_reduction(); 完整代码: 优点: 用新的名字代替原有数据类型名…

什么才是好用的大模型?

随着大模型在千行百业的逐步落地,中国基础大模型正直面来自用户端的诸多拷问。 近日,随着OpenAI宣布禁止中国用户使用其API,更多的国产大模型都在提供替代方案和优惠措施,来吸引和支持开发者进行用户迁移。 这既是一次挑战&…

多多OJ评测系统 前端项目环境初始化 安装Vue脚手架 引入Arco Design组件

目录 确定环境 命令行输入 装一下脚手架 监测一下是否安装成功 创建一个项目 选择一系列的配置后 我们打开webStorm 配置脚手架后我们先运行 我们这边能获取到网址 其实我们脚手架已经帮我们做到了 接下来要引入相关的组件 选择用npm进行安装 我们建议的是完整引入…

UDP客户端、服务端及简易聊天室实现 —— Java

UDP 协议(用户数据包协议) UDP 是无连接通信协议,即在数据传输时,数据的发送端和接收端不建立逻辑连接,简单来说,当客户端向接收端发送数据时,客户端不会确认接收端是否存在,就会发出…

windows镜像下载网站

一个专注于提供精校、完整、极致的Windows系统下载服务的仓储站,网站托管于Github。 网站:https://hellowindows.cn/ 下载方式:ED2k,BT,百度网盘 MSDN - 山己几子木,提供Windows 11、Windows 10等不同版本…

单例模式Singleton

设计模式 23种设计模式 Singleton 所谓类的单例设计模式,就是采取一定的方法保证在整个的软件系统中,对某个类只能存在一个对象实例,并且该类只提供一个取得其对象实例的方法。 饿汉式 public class BankTest {public static void main(…

Qt模型/视图架构——委托(delegate)

一、为什么需要委托 模型(model)用来数据存储,视图(view)用来展示数据。因此,模型/视图架构是一种将数据存储和界面展示分离的编程方法。具体如下图所示: 由图可知,模型向视图提供数…

python 迭代器介绍 map() 函数

迭代器(Iterator)在Python中是一种可以记住遍历位置的对象。迭代器对象从集合的第一个元素开始访问,直到所有的元素被访问完为止。迭代器只能往前不会后退,也就是只能前进遍历,不能反向遍历或跳过元素。迭代器在Python…

oracle备份和恢复-----从全库备份中恢复用户库解题思路

文章目录 从全库备份中恢复用户库的思路备份全库恢复用户库 从全库备份中恢复用户库的思路 备份全库 第一步:使用系统用户将oracle整个导出备份----全库备份 1.exp system/system buffer65536 feedback100000 fully fileD:/exp.dmp logexp.log ---导出备份文件位…

响应式编程:Project Reactor与WebFlux

在现代Web应用程序中,响应式编程成为一种越来越流行的方法,以处理高并发和高吞吐量。响应式编程不仅仅是一种新的编程范式,它还引入了一套新的工具和技术来处理数据流和异步事件。本文将深入探讨Project Reactor与Spring WebFlux,…

3D问界—MAYA制作铁丝栅栏(透明贴图法)

当然,如果想通过建立模型法来实现铁丝栅栏的效果,也不是不行,可以找一下栅栏建模教程。本篇文章主要是记录一下如何使用透明贴图来实现创建铁丝栅栏,主要应用于场景建模,比如游戏场景、建筑场景等大环境,不…

PGCCC|【PostgreSQL】PG考证对工作上有什么好处# PG证书

认证 PostgreSQL 考证(PostgreSQL Certification)在工作上有以下几个好处: 增强专业能力:通过考证,可以系统地学习和掌握 PostgreSQL 数据库的知识和技能,提高自己的专业水平。 提升职业竞争力&#xff1…

CentOS 7 初始化环境配置详细

推荐使用xshell远程连接,如链接不上 请查看 CentOS 7 网络配置 修改主机名 hostname hostnamectl set-hostname xxx bash 关闭 SElinux 重启之后生效 配置yum源(阿里) 先备份CentOS-Base.repo,然后再下载 mv /etc/yum.repos…

JAVA Math类详细介绍

Math类常见方法: 1)abs 绝对值 2)pow 求幂 3)ceil 向上取整 4)floor 向下取整 5)round 四舍五入 6)sqrt 求开方 7)random 求随机数 //思考:请写出获取 a-b之间的一个随机整数…

android R ext4 image打包脚本介绍

一、Android R打包指令使用介绍 (1)mkuserimg_mke2fs #./mkuserimg_mke2fs --help usage: mkuserimg_mke2fs [-h] [--android_sparse] [--journal_size JOURNAL_SIZE][--timestamp TIMESTAMP] [--fs_config FS_CONFIG][--product_out PRODUCT_OUT][--b…

小程序图片下载保存方法,图片源文件保存!

引言 现在很多时候我们在观看到小程序中的图片的时候,想保存图片的原文件格式的话,很多小程序是禁止保存的,即使是让保存的话,很多小程序也会限制不让保存原文件,只让保存一些分辨率很低的,非常模糊的图片…

Spring Boot 注解 @PostConstruct 介绍

Spring Boot 注解 PostConstruct 介绍 文章目录 Spring Boot 注解 PostConstruct 介绍一、基本介绍二、PostConstruct 的执行时机Spring Bean 的生命周期PostConstruct 的确切执行时机执行顺序示例重要注意事项 三、使用场景及代码示例1. 初始化资源:比如打开数据库…

基于opencv的图片加水印实现方案

加水印应该是个很常见的需求,但是网上找的代码,都感觉不太完善。记录下自己搞出来的一个方案 水印有几个需求: 中文文字水印文字倾斜满图都是,而不是只有一个地方水印文字所在之处完全展示水印 实现思路 准备水印图 我是这么…

k8s一些名词解释

潮汐计算 是一种根据负载变化动态调整资源分配的计算模式。其核心思想是利用峰值和非峰值时段的资源需求差异,动态地扩展或缩减计算资源。在 Kubernetes 环境中,可以通过自动扩展(auto-scaling)机制,根据工作负载的变化自动调整计算资源,最大化资源利用率并减少不必要的…