# 前言在 MySQL 中,timestamp 采用 4 字节进行存储,取值范围是 '1970-01-01 00:00:01' UTC to '2038-01-19 03:14:07' UTC [1]。如果时间来到 2038 年,而官方没有采取行动,那么 MySQL 将无法正常使用。# 问题复现... sql_parse.cc 中的 dispatch_command 有如下注释,其中说明,在语句执行性会调用 gettimeofday() 系统函数,用于检查时间是否大于 2038,并进行重试 5 次,然后接着就会 shutdown MySQL [2]。````undefinedif (is_tim...
mysql> select benchmark(100000000,1000000*1000000);+--------------------------------------+| benchmark(100000000,1000000*1000000) |+--------------------------------------+| 0 |+--------------------------------------+1 row in set (1.44 sec)````执行时间为1.44秒但是没有被记录到slow.log日志中注释掉min_examined_row_limit参数后,slow.log中会有日志记录如下`...
MySQL 数据库中的事务和存储过程是两个不同的概念,我将会分别解释这两个概念,然后提供一个简单的存储过程示例。1. **事务(Transaction)**:数据库事务是指一个或一组SQL语句的逻辑单元,这个逻辑单元中的操作要么全部执行,要么全部不执行。如果在执行过程中出现错误,那么事务将会回滚(Rollback),即撤销已经执行的操作;如果所有操作都成功执行,那么事务就会被提交(Commit),数据会被永久保存在数据库中。事务的主要特点是可以保证在...
mysql> select benchmark(100000000,1000000*1000000);+--------------------------------------+| benchmark(100000000,1000000*1000000) |+--------------------------------------+| 0 |+--------------------------------------+1 row in set (1.44 sec)```执行时间为1.44秒但是没有被记录到slow.log日志中注释掉min_examined_row_limit参数后,slow.log中会有日志记录如下``...
mysql> select benchmark(100000000,1000000*1000000);+--------------------------------------+| benchmark(100000000,1000000*1000000) |+--------------------------------------+| 0 |+--------------------------------------+1 row in set (1.44 sec)```执行时间为1.44秒但是没有被记录到slow.log日志中注释掉min_examined_row_limit参数后,slow.log中会有日志记录如下``...
# 前言MySQL 中的优化器是基于成本的优化器(CBO),所谓基于成本,代表着运行目标 SQL 语句需要消耗的 CPU,扫描行数,IO 等,这些信息是基于统计信息来获得的。如果统计信息不准确,优化器很可能选择那些不够优化,甚至是错误的执行计划。对于统计信息的搜集方式有两种:1. 非持久化统计信息2. 持久化统计信息# 非持久化统计信息所谓的非持久化统计信息,指的是统计信息没有持久化到磁盘上,如果数据库重启,统计信息将全部丢失。设...
# 前言MySQL 数据库中有两个非常重要的参数,一个是**innodb_flush_log_at_trx_commit**,另外一个是**sync_binlog**,这两个参数称之为双一参数,前者控制了redo log 的刷盘机制,后者控制了binlog 的刷盘机制。这两个参数取值不同时,会影响数据库性能以及安全。|参数名称 |允许值 ||---|---||innodb\_flush\_log\_at\_trx\_commit |0, 1, 2 | |sync\_binlog |0,1, N |# sync_binlog- 0:binlog 不刷盘,依赖于操作系统的...
云数据库 veDB MySQL 版支持库表恢复,可以将已有备份集的库和表恢复至原实例中,并且不影响原实例中现有的库表,而是在原实例中,重新创建库和表。本文介绍如何按备份集进行库表恢复。 前提条件已创建实例,且实例处于... 不支持恢复索引注释、Functional Key Parts、不可见索引或其他高级特性的全文索引。若恢复特殊全文索引,则会退化成只有基础特性的全文索引或恢复后的表中不带索引。 操作步骤登录云数据库 veDB MySQL 版控制台。 ...
# 前言MySQL 数据库中有两个非常重要的参数,一个是**innodb_flush_log_at_trx_commit**,另外一个是**sync_binlog**,这两个参数称之为双一参数,前者控制了redo log 的刷盘机制,后者控制了binlog 的刷盘机制。这两个参数取值不同时,会影响数据库性能以及安全。| **参数名称** | **允许值** || --- | --- || innodb_flush_log_at_trx_commit | 0, 1, 2 || sync_binlog | 0,1, N |# sync_binlog* 0:binlog 不刷盘,依赖于操...
hello,大家好,我是张张,「架构精进之路」公号作者。 在 MySQL 中我们经常会接触到三个核心日志,它们分别是:binlog 、redo log、undo log。好多同学对于它们可能并不陌生,但是具体区分起来各自的功能用途以及实现原理,那可能认知就会比较模糊了,今天就跟大家一起,来清晰明了的介绍一下这些日志的核心思想和功能原理。## 1 binlog### 1.1 binlog 设计目标binlog 记录了对 MySQL 数据库执行更改的所有的写操作,包括所...
本文汇总云数据库 veDB MySQL 版的 API 接口中使用的数据结构定义详情。 AccountObject账号列表信息。被 DescribeDBAccounts 接口引用。 名称 类型 示例值 描述 AccountName String testuser 账号名称。 AccountType String Normal 账号类型: Super:高权限账号。 Normal:普通账号。 AccountPrivileges Array of AccountPrivilegeObject 请参见返回示例。 账号的权限信息。详细信息,请参见 AccountPrivilegeObject。 AccountP...
每个主账号均可以创建多个子账号,并为不同的子账号授予不同的权限,以此管理账号下不同身份对云资源的访问权限。本文介绍了通过子用户使用 MySQL 服务的相关内容。 适用场景独立管理资源的场景:为不同业务创建不同子账号,通过子账号访问不同业务所属的资源。安全问题:使用子账号的 AK/SK 调用 Open API 接口,可有效避免主账号 AK/SK 的泄露风险。 背景信息策略策略是对权限的一种描述,IAM 用户、用户组或角色均需通过关联策略来赋...
云数据库 MySQL 版支持对连接终端的连接信息、终端信息、关联节点、和读写分离设置进行修改。本文介绍编辑连接终端的操作步骤。 前提条件已创建实例且实例状态为运行中。更多详情,请参见创建实例。 注意事项未开启数据库代理功能实例的连接终端不支持以下功能: 自动加入新节点 切换读写模式 调整关联节点 开启或关闭读写分离与设置读写分离权重 设置只读延迟阈值 操作步骤登录云数据库 MySQL 版控制台。 在顶部菜单栏的左上...