GreatSQL执行Update失败案例分析

GreatSQL vs MySQL性能测试来了,速围观~ 无论ibp(innodb_buffer_pool_size)是否充足,MySQL的性能都远不如GreatSQL。MySQL的性能平均约为GreatSQL的70%(最高84.5%,最低61.7%)。在ibp充分的情况下,随着并发数的增加,MySQL并没有表现出该有的性能提升,反倒掉头向下,可见还是不够稳定。在ibp不够的情况下,GreatSQL开启thread pool性能有所提升;当ibp充足的情况下,区别就不大了。MySQL vs GreatSQL性能数据对比各数据库版本分别为。 阅读详情

GreatSQL执行Update失败案例分析

一 问题概述

业务反馈在应用核心库的用户基本信息表执行部分update命令失败,报错如下:

update xxx.xxx_staffbasicinfo  set staffidstatus='04’ where staffid in (select * from  duyuanyu.tmp_d_xiaoyuan )  > 1265 Data  truncated for column 'NOTMODSTATUS at row 1  

二 问题分析

经过分析表结构,没有发现异常。

2.1 问题初步定位

$ perror 1265  MySQL error code  MY-001265 (WARN_DATA_TRUNCATED): Data truncated for column '%s' at row %ld  

进一步分析对于该表的存储过程、触发器等,发现 xxx.xxx_staffbasicinfo 表上建了8个触发器,其中有包括3个update类型触发器。

file

分析每个update类型触发器,发现xxx.xxx_STAFFBASICINFO_U 触发器作用是在满足指定条件时将xxx.xxx_staffbasicinfo原来记录或者新的记录insert 到xxx.xxx__STAFFBASICINFO_LOG表中

GreatSQL [information_schema]> show create trigger xxx.xxx_STAFFBASICINFO_U\G
*************************** 1. row ***************************
               Trigger: xxx_STAFFBASICINFO_U
              sql_mode: PIPES_AS_CONCAT,ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION
SQL Original Statement: CREATE DEFINER=`icdpub`@`%` TRIGGER `TRG_T_UCP_STAFFBASICINFO_U` AFTER UPDATE ON `t_ucp_staffbasicinfo` FOR EACH ROW BEGIN
DECLARE   v_havenew   BOOLEAN DEFAULT FALSE;
DECLARE   v_haveold   BOOLEAN DEFAULT FALSE;
DECLARE   v_action    VARCHAR(32);
DECLARE   v_staffid_ct BIGINT;

select count(STAFFID) into v_staffid_ct from xxx.lpr_sys_staff where STAFFID=old.STAFFID;


      set v_havenew := TRUE;

      set v_action := 'UPDATE';
      set v_haveold := TRUE;

   IF TRUE = v_haveold and v_staffid_ct>0
   THEN
      INSERT INTO xxx.xxx_staffbasicinfo_log (STAFFID,
                  STAFFNAME,
                  STAFFSTATE,
                  STAFFIDSTATUS,
                  DLEVELID,
                  DLMODULUS,
                  SECONDPOST,
                  DUTYID,
                  SECONDDUTY,
                  PTEAMID,
                  ORGAID,
                  POSTID,
                  STAFFACCOUNT,
                  DISABLEBEGINDATE,
                  DISABLEENDDATE,
                  HOSTEDCCID,
                  PERSONALCFGID,
                  UPDATETIME,
                  BATCHNO,
                  STAFFTYPE,
                  ISMANAGER,
                  HRSTATUS,
                  CREATEDATE,
                  STATUSDATE,
                  REMARK,
                  REGION,
                  BEGINDATE,
                  ENDDATE,
                  RELESTAFFID,
                  WORKEFFICIENCY,
                  TELNO,
                  LOGINTYPE,
                  WORKTYPE,
                  AREAID,
                  EMPLOYEETYPE,
                  STAFFNUMBER,
                  STAFFIDUSE,
                  ISADMIN,
                  PETNAME,
                  ISMODIFYCONTROL,
                  RESPCITYID,
                  NOTMODSTATUS,
                  t_operator,
                  t_action,
                  t_date,
                  t_remark)
           VALUES (old.STAFFID,
                   old.STAFFNAME,
                   old.STAFFSTATE,
                   old.STAFFIDSTATUS,
                   old.DLEVELID,
                   old.DLMODULUS,
                   old.SECONDPOST,
                   old.DUTYID,
                   old.SECONDDUTY,
                   old.PTEAMID,
                   old.ORGAID,
                   old.POSTID,
                   old.STAFFACCOUNT,
                   old.DISABLEBEGINDATE,
                   old.DISABLEENDDATE,
                   old.HOSTEDCCID,
                   old.PERSONALCFGID,
                   old.UPDATETIME,
                   old.BATCHNO,
                   old.STAFFTYPE,
                   old.ISMANAGER,
                   old.HRSTATUS,
                   old.CREATEDATE,
                   old.STATUSDATE,
                   old.REMARK,
                   old.REGION,
                   old.BEGINDATE,
                   old.ENDDATE,
                   old.RELESTAFFID,
                   old.WORKEFFICIENCY,
                   old.TELNO,
                   old.LOGINTYPE,
                   old.WORKTYPE,
                   old.AREAID,
                   old.EMPLOYEETYPE,
                   old.STAFFNUMBER,
                   old.STAFFIDUSE,
                   old.ISADMIN,
                   old.PETNAME,
                   old.ISMODIFYCONTROL,
                   old.RESPCITYID,
                   old.NOTMODSTATUS,
                   USER(),
                   v_action,
                   SYSDATE(),
                   'old');
   END IF;

   IF TRUE = v_havenew and v_staffid_ct>0
   THEN
      INSERT INTO xxx.xxx_staffbasicinfo_LOG (STAFFID,
      STAFFNAME,STAFFSTATE,STAFFIDSTATUS,DLEVELID,DLMODULUS,SECONDPOST,
      DUTYID,SECONDDUTY,PTEAMID,ORGAID,POSTID,STAFFACCOUNT,
      DISABLEBEGINDATE,DISABLEENDDATE,HOSTEDCCID,
      PERSONALCFGID,UPDATETIME,BATCHNO,STAFFTYPE,ISMANAGER,HRSTATUS,CREATEDATE,
      STATUSDATE,REMARK,REGION,BEGINDATE,ENDDATE,RELESTAFFID,WORKEFFICIENCY,TELNO,
      LOGINTYPE,WORKTYPE,AREAID,EMPLOYEETYPE,STAFFNUMBER,STAFFIDUSE,ISADMIN,
      PETNAME,ISMODIFYCONTROL,RESPCITYID,NOTMODSTATUS,t_operator,t_action,
      t_date,t_remark)
           VALUES (new.STAFFID,
                   new.STAFFNAME,
                   new.STAFFSTATE,
                   new.STAFFIDSTATUS,
                   new.DLEVELID,
                   new.DLMODULUS,
                   new.SECONDPOST,
                   new.DUTYID,
                   new.SECONDDUTY,
                   new.PTEAMID,
                   new.ORGAID,
                   new.POSTID,
                   new.STAFFACCOUNT,
                   new.DISABLEBEGINDATE,
                   new.DISABLEENDDATE,
                   new.HOSTEDCCID,
                   new.PERSONALCFGID,
                   new.UPDATETIME,
                   new.BATCHNO,
                   new.STAFFTYPE,
                   new.ISMANAGER,
                   new.HRSTATUS,
                   new.CREATEDATE,
                   new.STATUSDATE,
                   new.REMARK,
                   new.REGION,
                   new.BEGINDATE,
                   new.ENDDATE,
                   new.RELESTAFFID,
                   new.WORKEFFICIENCY,
                   new.TELNO,
                   new.LOGINTYPE,
                   new.WORKTYPE,
                   new.AREAID,
                   new.EMPLOYEETYPE,
                   new.STAFFNUMBER,
                   new.STAFFIDUSE,
                   new.ISADMIN,
                   new.PETNAME,
                   new.ISMODIFYCONTROL,
                   new.RESPCITYID,
                   new.NOTMODSTATUS,
                   USER(),
                   v_action,
                   SYSDATE(),
                   'new');        
   END IF;                   
END
  character_set_client: utf8mb4
  collation_connection: utf8mb4_0900_ai_ci
    Database Collation: utf8mb4_0900_bin
               Created: 2022-04-13 00:32:05.13
1 row in set (0.01 sec)

但xxx.XXX_STAFFBASICINFO_LOG表NOTMODSTATUS字段为 varchar(1) ,而 xxx.xxx_staffbasicinfo表NOTMODSTATUS字段为 varchar(8),字段长度不足导致insert失败。

GreatSQL [information_schema]> desc xxx.XXX_STAFFBASICINFO_LOG    -> ;
+------------------+--------------+------+-----+---------+-------+
| Field            | Type         | Null | Key | Default | Extra |
+------------------+--------------+------+-----+---------+-------+
| STAFFID          | varchar(20)  | NO   |     | NULL    |       |
| STAFFNAME        | varchar(100) | NO   |     | NULL    |       |
| STAFFSTATE       | varchar(2)   | NO   |     | NULL    |       |
| STAFFIDSTATUS    | varchar(2)   | NO   |     | NULL    |       |
......
......
| ISADMIN          | varchar(1)   | YES  |     | NULL    |       |
| PETNAME          | varchar(100) | YES  |     | NULL    |       |
| ISMODIFYCONTROL  | varchar(1)   | YES  |     | NULL    |       |
| RESPCITYID       | varchar(40)  | YES  |     | NULL    |       |
| NOTMODSTATUS     | varchar(1)   | YES  |     | NULL    |       |
| T_OPERATOR       | varchar(100) | YES  |     | NULL    |       |
| T_ACTION         | varchar(100) | YES  |     | NULL    |       |
| T_DATE           | datetime     | YES  |     | NULL    |       |
| T_REMARK         | varchar(100) | YES  |     | NULL    |       |
+------------------+--------------+------+-----+---------+-------+
46 rows in set (0.01 sec)1 row in set (0.00 sec)

GreatSQL [information_schema]> desc xxx.xxx_staffbasicinfo;
+------------------+--------------+------+-----+-------------------+-------------------+
| Field            | Type         | Null | Key | Default           | Extra             |
+------------------+--------------+------+-----+-------------------+-------------------+
| STAFFID          | varchar(20)  | NO   | PRI | NULL              |                   |
| STAFFNAME        | varchar(100) | NO   |     | NULL              |                   |
| STAFFSTATE       | varchar(2)   | NO   |     | NULL              |                   |
....
| ISMODIFYCONTROL  | varchar(1)   | YES  |     | 0                 |                   |
| RESPCITYID       | varchar(40)  | YES  |     | NULL              |                   |
| NOTMODSTATUS     | varchar(8)   | YES  |     | NULL              |                   |
| CURRENTORGAID    | varchar(32)  | YES  | MUL | NULL              |                   |
| CURRENTREGION    | int          | YES  |     | NULL              |                   |
| SALESCENE        | varchar(2)   | YES  |     | NULL              |                   |
| CHANNELTYPE      | varchar(2)   | YES  |     | NULL              |                   |
| LOGINCHKPHOTO    | varchar(2)   | YES  |     | 0                 |                   |
| UPLOADPHOTO      | varchar(2)   | YES  |     | 0                 |                   |
| USERNAME         | varchar(100) | YES  |     | NULL              |                   |
| JKAPPROLE        | varchar(64)  | YES  |     | NULL              |                   |
| JKAPPLEVEL       | varchar(1)   | YES  |     | NULL              |                   |
| UPLOADPHOTODATE  | date         | YES  |     | NULL              |                   |
| UPLOADPHOTOOPER  | varchar(32)  | YES  |     | NULL              |                   |
+------------------+--------------+------+-----+-------------------+-------------------+
53 rows in set (0.01 sec)

以前长期运行过程中,未暴露此问题的原因是由于NOTMODSTATUS字段在之前处理的记录中全部为null。

GreatSQL [information_schema]> select NOTMODSTATUS ,count(*) from xxx.XXX_STAFFBASICINFO_LOG group by NOTMODSTATUS;
+--------------+----------+
| NOTMODSTATUS | count(*) |
+--------------+----------+
| NULL         |      762 |
+--------------+----------+
1 row in set (0.00 sec)

2.2 问题复现

greatsql> show create table students\G
*************************** 1. row ***************************
       Table: students
Create Table: CREATE TABLE `students` (
  `id` int NOT NULL,
  `name` varchar(20) DEFAULT NULL,
  `chinese` int DEFAULT NULL,
  PRIMARY KEY (`id`),
  KEY `ind_chinese` (`chinese`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci STATS_PERSISTENT=0 STATS_AUTO_RECALC=0 STATS_SAMPLE_PAGES=100
1 row in set (0.00 sec)

greatsql> CREATE TABLE `students_hist` (
    ->   `id` int NOT NULL,
    ->   `name` varchar(10) DEFAULT NULL,
    ->   `chinese` int DEFAULT NULL,
    ->   PRIMARY KEY (`id`),
    ->   KEY `ind_chinese` (`chinese`)
    -> ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci STATS_PERSISTENT=0 STATS_AUTO_RECALC=0 STATS_SAMPLE_PAGES=100;
Query OK, 0 rows affected (0.41 sec)

greatsql> CREATE TRIGGER  tri_update_stu
    ->      BEFORE update
    ->     ON test.students FOR EACH ROW   
    ->     insert into test.students_hist (id,name,chinese) values (OLD.id,OLD.name,OLD.chinese);
Query OK, 0 rows affected (0.01 sec)

在students表上执行update语句

greatsql> select * from students;
+----+----------------+---------+
| id | name           | chinese |
+----+----------------+---------+
|  1 | yaojunz        |      99 |
|  5 | yaojunzhuo8000 |      72 |
|  6 | zhao           |      88 |
| 10 | xiao           |      90 |
+----+----------------+---------+
4 rows in set (0.00 sec)

greatsql> update students set name='yaojunzhuo80000' where id=5;
ERROR 1265 (01000): Data truncated for column 'name' at row 1

三 解决方案

将xxx.xxx_staffbasicinfo表上触发器中所涉及表的表字段和xxx.xxx_staffbasicinfo修改为一致,问题得到解决。

Enjoy GreatSQL :)

关于 GreatSQL

GreatSQL是适用于金融级应用的国内自主开源数据库,具备高性能、高可靠、高易用性、高安全等多个核心特性,可以作为MySQL或Percona Server的可选替换,用于线上生产环境,且完全免费并兼容MySQL或Percona Server。

相关链接: GreatSQL社区 Gitee GitHub Bilibili

GreatSQL社区:

image

社区有奖建议反馈: https://greatsql.cn/thread-54-1-1.html

社区博客有奖征稿详情: https://greatsql.cn/thread-100-1-1.html

(对文章有疑问或者有独到见解都可以去社区官网提出或分享哦~)

技术交流群:

微信&QQ群:

QQ群:533341697

微信群:添加GreatSQL社区助手(微信号:wanlidbc )好友,待社区助手拉您进群。

GreatSQL与MySQL性能对比测试,带您一同探索数据库的速度差异 在选择适合自己的数据库时,性能是一个至关重要的考虑因素。本文将介绍GreatSQL和MySQL两个常见的关系型数据库,并通过性能测试来比较它们之间的速度差异。除了查询性能之外,我们还可以比较GreatSQL和MySQL在插入和更新操作方面的性能差异。除了查询性能之外,我们还可以比较GreatSQL和MySQL在插入和更新操作方面的性能差异。然后,我们分别在GreatSQL和MySQL中执行了一个查询,并记录了执行时间。然后,我们分别在GreatSQL和MySQL中执行了一个查询,并记录了执行时间。 阅读详情

相关推荐

SAP Keyword Maintenance 实战理解,物料搜索里那个容易被忽略的关键字体系

文章摘要:SAP物料主数据项目中,搜索难题常源于业务语言与系统描述的不匹配。Keyword Maintenance(事务码WSD_KEYWORD)通过建立独立关键字层,将业务常用词与物料组关联,在不修改主数据描述的前提下增强搜索能力。该功能采用标准编号范围管理关键字标识,需配合Search Index更新机制生效,特别适合零售业复用商品品类关键字。实施时需注意关键字粒度的平衡,建立维护流程,并明确索引更新策略,以解决业务搜索语言松散性与系统结构化字段间的矛盾。(149字)

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 509

GreatSQL是一个国内自主的开源数据库,可替代mysql

此外,GreatSQL社区还提供了MySQL Shell for GreatSQL,这是一个高级客户端和代码编辑器,支持JavaScript和Python脚本功能,以及与MySQL一起使用的API。它可以用来管理数据库,特别是对MGR的支持,可以方便地进行搭建、管理和配置。GreatSQL的架构可以分为连接层、服务层和存储引擎层。连接层负责与客户端建立连接,服务层是GreatSQL的核心,包括连接器、分析器、优化器、执行器等,而存储引擎层则负责数据的存储和提取。

地球空间 3193

CUPED (Controlled-experiment using Pre-Experiment Data) 论文学习笔记

CUPED是一种用于提升A/B测试灵敏度的方差缩减技术。它通过利用实验前用户行为数据(协变量X)构建调整后的指标Y_cuped=Y-θ(X-E[X]),其中θ=Cov(Y,X)/Var(X)。这种方法能在保持处理效应估计无偏的前提下,将方差降低1-ρ²倍(ρ为前后指标相关性)。CUPED的核心优势在于:不改变平均处理效应的估计,但能显著提升统计功效,使得实验更容易检测到微小但真实的效应,同时减少所需样本量或实验周期。该技术特别适用于用户异质性大、指标方差高的场景。

pursuit的博客 2147

技术干货 | 图文结合带你搞懂GreatSQL体系架构

所有的数据,数据库、表的定义,表的每一行的内容,索引,都是存在 文件系统上,以文件的方式存在的,并完成与存储引擎的交互。服务层是GreatSQL Server的核心,主要包含连接器、分析器、优化器、执行器等,涵盖 GreatSQL 的大多数核心服务功能,以及所有的内置函数(如日期、时间、数学和加密函数等),所有跨存储引擎的功能都在这一层实现,比如存储过程、触发器、视图等。GreatSQL数据库区别于其他数据库的一个特点就是其可插拔的表存储引擎,特别需要注意的是,存储引擎是基于表的,而不是数据库。

GreatDB的博客 437

【5G全网建设】Option3X和Option2模式建安市、兴城市和四水市核心网、承载网网络设计与部署

拓扑规划: Option 3X网络拓扑图规划 Option 2网络拓扑图规划 设备部署: 建安市核心网 建安市承载中心机房 建安市骨干汇聚机房 建安市3区汇聚机房 建安市C站点无线机房 兴城市核心网 兴城市承载中心机房 兴城市骨干汇聚机房 兴城市2区汇聚机房 兴城市B站点无线机房 数据配置: 建安市核心网 建安市承载中心机房 建安市骨干汇聚机房 建安市3区汇聚机房 建安市C站点无线机房 兴城市核心网 兴城市承载中心机房 兴城市骨干汇聚机房 兴城市2区汇聚机房 兴城市B站点无线机房 业务调试

weixin_67183034的博客 8857

AD元件库构建及维护之——DbLib公共元件库的使用教程

AD元件库构建及维护之——DbLib元件库的使用教程

qq_43105486的博客 2万+

CentOS7安装GreatSQL

GreatSQL 数据库是一款 开源免费 数据库,可在普通硬件上满足金融级应用场景,具有 高可用、高性能、高兼容、高安全 等特性,可作为 MySQL 或 Percona Server for MySQL 的理想可选替换。

落的博客 1701

动态规划法:n*m方格前进问题

在一个n*m的方格中,m为奇数,放置有n*m个数,方格中间的下方有一人,此人可按照正前方相临的五个方向(方格)前进但不能越出方格。人每走过一个方格必须取此方格中的数。要求找到一条从底到顶的路径,使其数相加之和为最大。输出和的最大值。 算法设计: 可以使用动态规划方法,从顶部开始,将第二排的每个数加上顶部第一排的最优解,将6排的问题缩小为5排的问题,然后重复该操作,直到底部最后一排,此时

Winifred_1997的博客 4675

CentOS 7下GreatSQL安装与MySQL兼容性测试指南

数据库兼容性测试是系统迁移过程中的关键环节,特别是当评估MySQL替代方案时。GreatSQL作为MySQL的重要分支,在高并发事务处理场景中展现出性能优势。本文以CentOS 7环境为例,详细介绍从源码编译安装GreatSQL到完整兼容性测试的全流程,包括系统配置优化、服务管理设置以及常见问题解决方案。通过实际测试案例展示如何验证基础SQL功能、高级特性(如窗口函数和JSON处理)以及权限系统的兼容性,为金融级应用迁移提供可靠参考。内容涵盖性能调优参数配置、sysbench基准测试对比以及使用mysqld

weixin_34088583的博客 286

Multisim仿真运放积分器踩坑实录:为什么你的方波变不成三角波?

本文针对Multisim仿真运放积分器时方波无法转换为三角波的常见问题,提供了详细的排查与调试指南。文章指出,经典RC积分电路因直流反馈开路导致运放饱和,核心解决方案是在反馈电容两端并联大阻值电阻以稳定直流工作点。通过参数优化(调整Rin、C、Rf)和高级仿真技巧,手把手教你调出线性度好、幅度适中的完美三角波,并分享异常波形(如饱和、不对称、振荡)的对应策略。

weixin_29231263的博客 114

一文掌握DrissionPage的详细使用

是一个基于 Python 的网页自动化工具,主要用于网页数据的抓取、自动化操作和测试。它结合了 Selenium 和 Requests 的优点,提供了更简洁、高效的 API,适用于各种网页自动化任务。DrissionPage 是一个功能强大且易于使用的网页自动化工具,适用于各种网页自动化任务。希望本文的 DrissionPage 的基本使用方法和一些高级功能能够帮助到你。

数据知道的博客 1万+

MySQL 迁移至 GreatSQL 后,timestamp 字段插入报错解析

对于为这样的列指定 NULL 的插入,如果启用了严格的 SQL 模式,则结果是单行插入错误,如果禁用了严格的 SQL 模式,则会插入 '0000-00-00 00:00:00'。3、第一个之后的 TIMESTAMP 列,如果没有显式地使用 NULL 属性或显式的 DEFAULT 属性声明,将自动声明为 DEFAULT '0000-00-00 00:00:00'("零" 时间戳)。对于没有为这样的列指定显式值的插入行,将为该列分配 '0000-00-00 00:00:00',并且不会出现警告。

cagscshs的博客 296

若依开源系统多数据源整合clickhouse数据库详细步骤

若依开源系统多数据源整合clickhouse数据库详细步骤

java之书-资源 897

GreatSQL配置文件my.cnf详解:新手必读的10个关键参数

GreatSQL 是一款开源免费、兼容 MySQL 的数据库,可在普通硬件上满足金融级高可用、高性能、高安全应用场景。对于刚接触 GreatSQL 的新手来说,**my.cnf 配置文件**是最先要掌握的技能——它决定了数据库实例的端口、存储路径、内存占用与性能表现。本文用通俗语言为你详解 my.cnf 中最关键的 10 个参数,帮你少踩坑、快上手。 ## 一、my.cnf 是什么?它在哪里?

gitblog_01097的博客 834

Educoder:爬虫实战——求是网周刊文章爬取

第1关:获取新闻url importrequests importre defgeturls(): #**********Begin**********# url='http://www.qstheory.cn/dukan/qs/2014/2019-01/01/c_1123924172.htm' headers={ 'User-Agent':'Mozilla/5.0(Linux;Android6.0;Nexus5Buil...

weixin_46026136的博客 5254

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

openGauss 迁移到 GreatSQL:DataX 全流程实操指南

DataX 是阿里巴巴开源的异构数据源离线同步工具。它将数据同步过程抽象为 Reader、Framework 和 Writer 三部分:Reader 从源端读取数据,Framework 负责调度和传输,Writer 将数据写入目标端。GreatSQL 完全兼容 MySQL 协议和 MySQL 语法,因此目标端使用 DataX 的插件写入。源端 openGauss 与 PostgreSQL 生态有较高兼容性,但在 JDBC 驱动、数据类型和 SQL 语法上仍需要注意差异。什么是DataX。

TYV5P72P9的博客 235

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

GreatSQL复制中断问题分析与解决方案

数据库主从复制是保证数据高可用的核心技术,其核心原理是通过binlog实现数据变更的同步。在MySQL/GreatSQL等数据库中,GTID机制确保了事务的全局唯一性和顺序性。当主从复制出现中断时,常见原因是binlog过期或数据不一致。本文通过一个典型案例,展示了slave_skip_errors=ALL参数的危险性,它会导致GTID空洞并掩盖数据不一致问题。合理的参数配置如binlog_expire_logs_seconds和slave_preserve_commit_order对保障复制稳定性至关重要

weixin_32705179的博客 298

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

GreatSQL复制中断问题分析与slave_skip_errors参数风险

数据库复制技术是确保数据高可用的核心机制,其基本原理是通过主库的二进制日志(binlog)将数据变更同步到从库。在MySQL及GreatSQL等分支版本中,复制过程涉及IO线程和SQL线程的协同工作,任何环节出错都可能导致数据不一致。slave_skip_errors参数作为控制复制错误处理的关键配置,当其设置为ALL时会跳过所有错误继续复制,虽然能维持复制线程运行,但会带来严重的数据一致性问题。实际运维中,主从复制架构常遇到的binlog过期、GTID空洞等现象,往往与不合理的参数配置有关。通过分析Gre

weixin_29587015的博客 329

GreatSQL备份报错“PROCESS权限不足“分析与解决

GreatSQL 备份遇 PROCESS 权限不足?本文解析 mysqldump 权限机制,提供解决方案与最小权限配置,助你规避备份故障,速来学习!

GreatSQL2021的博客 490

Percona Toolkit 神器全攻略(复制类)

用来监测主从延迟的情况,此工具的设计为向 Master 中插入一条带有当前时间(GreatSQL中的now()函数)的记录到心跳表中,然后,该记录会复制到 Slave 中。GreatSQL是适用于金融级应用的国内自主开源数据库,具备高性能、高可靠、高易用性、高安全等多个核心特性,可以作为MySQL或Percona Server的可选替换,用于线上生产环境,且完全免费并兼容MySQL或Percona Server。输出的结果为:实时延迟,[1分钟延迟,5分钟延迟,15分钟延迟] 主节点的Server_id。

GreatSQL2021的博客 1436

MySQL如何快速禁用账户登入 & 如何复制/复用账户密码

GreatSQL社区原创内容未经授权不得随意使用,转载请联系小编并注明来源。 GreatSQL是MySQL的国产分支版本,使用上与MySQL一致。 作者: 叶金荣 文章来源:GreatSQL社区原创 如何快速临时禁止某账户登入 角色ROLES管理需要先激活 关于授权的其他几点补充 如何复制/复用账户密码 1. 快速临时禁止某用户登入 有几个方法: 修改其密码 ALTER USER x IDENTIFIED BY 'new_passwd',或者将其修改为随机密码 ALTER U

GreatSQL2021的博客 642

PostgreSQL与国产数据库:从技术原理到选型实践

关系型数据库作为企业数据存储与管理的核心组件,其技术演进始终围绕数据一致性、事务处理与查询优化等基本原理展开。PostgreSQL凭借其成熟的MVCC(多版本并发控制)机制、WAL(预写式日志)和强大的扩展性,成为众多数据库产品的技术基石。在国产化与信创背景下,基于PostgreSQL的国产数据库产品通过架构扩展、分布式能力增强和运维工具集成,实现了从基础功能到产品化解决方案的升级。这些创新不仅满足了金融、政务等关键行业对自主可控与高性能的需求,也为开发者提供了更丰富的技术选型空间。本文通过环境搭建、功能对

weixin_30820077的博客 367

探索卓越性能:GreatSQL - 高效数据库解决方案

探索卓越性能:GreatSQL - 高效数据库解决方案 项目简介 是一个开源的、高性能的关系型数据库管理系统,它源自 MySQL 的 Percona Server for MySQL 分支,并在此基础上进行了一系列优化和增强,旨在提供更优秀的事务处理能力、更高的并发性能以及更好的大数据处理能力。 技术分析 性能提升 GreatSQL 在 MySQL 的基础上,针对 InnoDB 存储引擎进行了深度...

gitblog_00021的博客 645

GreatSQL体系架构的了解

通过学习《图文结合带你搞懂GreatSQL体系架构》,能对GreatSQL的基本底层原理有所了解。一张经典的体系架构图,图1_GreatSQL5.7 版本体系架构图由此可以发现,GreatSQL5.7由以下几部分组成,连接池组件系统管理和控制工具SQL接口组件查询解析器查询优化器缓存组件可插拔存储引擎系统和日志文件GreatSQL数据库区别于其他数据库的一个特点就是其可插拔的表存储引擎,特别需要注...

bisal的专栏 409
上一篇: 独家揭秘丨GreatSQL 的MDL锁策略升级对执行的影响
下一篇: GreatSQL执行Update失败案例分析
GreatSQL社区
博客等级 码龄5年 1210粉丝 390原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值