- 博客(178)
- 收藏
- 关注
原创 MySQL OCP试题解析(7)
从 MySQL 5.7 开始,Undo 日志从系统表空间中分离,支持通过 SQL 动态管理(如 CREATE UNDO TABLESPACE),并可配置自动截断(innodb_undo_log_truncate)以回收空间。然而,若主库在提交事务后、但未将数据持久化到磁盘时发生故障(例如磁盘损坏),此时主库数据不可恢复,但从库可能尚未应用该事务(尽管已接收binlog)。在异步复制中,从库主动通过I/O线程向主库请求(Pull)二进制日志(Binlog),主库不会主动推送(Push)日志到从库。
2025-05-20 21:41:41
741
原创 MySQL OCP试题解析(6)
mysqlbackup对InnoDB表支持在线热备份,备份过程中仅对非InnoDB表施加读锁(温备份),而InnoDB表的DML操作(如INSERT、UPDATE)可继续执行,减少了因锁竞争导致的等待时间。mysqlbackup支持部分备份(如指定表或数据库),但存储程序(存储过程、函数等)的元数据存储在mysql系统库中,需全库备份或单独备份系统库,无法选择性备份。通过--incremental参数,可以基于上一次全量或增量备份的LSN(日志序列号)仅备份变更数据,显著减少备份时间和存储空间。
2025-05-18 20:08:18
362
原创 MySQL OCP试题解析(5)
OPTIMIZE TABLE会通过重建表的方式(等价于ALTER TABLE ... FORCE),重新组织数据和索引的物理存储,回收未使用的空间并优化布局,从而减少存储占用并提升 I/O 效率。对于 InnoDB 引擎(且innodb_file_per_table开启时),删除大量数据后,表的物理空间(如.ibd文件)不会自动收缩,未使用的空间会被标记为"可重用" 但不会释放。该命令用于分析表的索引统计信息(如索引分布、数据密度),帮助优化器生成更优的查询执行计划,但不会修改表的物理存储结构。
2025-05-13 20:22:01
450
原创 利用腾讯 CodeBuddy 构建高效数据库自动化运维平台
在代码生成方面,CodeBuddy 可以根据用户对功能的描述,快速构建出完整的代码结构,减少开发者的编码时间。随着技术的不断发展,数据库自动化运维平台将不断完善,结合更多先进的技术(如人工智能预测性维护、自动化优化建议等),为企业的数据库管理提供更强大、更智能的支持。平台应运而生,它通过自动化的手段实现数据库的监控、管理、优化等功能,极大地提升了运维效率,降低了人为错误的概率。:利用 CodeBuddy 的纠错能力,及时发现并解决代码中存在的问题,如连接错误、SQL 语法错误等,确保平台的稳定性与可靠性。
2025-05-13 20:22:01
903
原创 MySQL OCP 试题解析(3)新
-no-create-info 仅影响表结构(CREATE TABLE 语句)的生成,与表空间(CREATE TABLESPACE)无关。--no-create-info(或 -t)的作用是 仅导出数据,不生成 CREATE TABLE 语句。使用 --initialize(非 --initialize-insecure)时,会生成随机密码并记录在错误日志中。SSL 证书的生成由独立参数控制(如 --ssl 或 skip-ssl),与 --initialize-insecure 无关。
2025-05-10 15:01:09
999
原创 MySQL OCP试题解析(4)
它仅记录慢查询,而非所有数据变更操作,因此排除。它默认记录所有对数据库的 数据变更操作(如 INSERT、UPDATE、DELETE、DDL 等),并以二进制格式存储。题目是问,在MySQL系统中,哪个日志默认记录数据库对象和数据的变更。选项有五个:错误日志、慢查询日志、通用查询日志、二进制日志、审计日志。根据题目要求“默认”、"记录数据库对象和数据的变更",正确答案是 D) binary log(二进制日志)默认启用:与审计日志不同,二进制日志在 MySQL 中默认开启(需配置 log_bin 参数)。
2025-05-09 22:08:32
272
原创 MySQL OCP试题解析(2)
它仅记录慢查询,而非所有数据变更操作,因此排除。它默认记录所有对数据库的 数据变更操作(如 INSERT、UPDATE、DELETE、DDL 等),并以二进制格式存储。题目是问,在MySQL系统中,哪个日志默认记录数据库对象和数据的变更。选项有五个:错误日志、慢查询日志、通用查询日志、二进制日志、审计日志。根据题目要求“默认”、"记录数据库对象和数据的变更",正确答案是 D) binary log(二进制日志)默认启用:与审计日志不同,二进制日志在 MySQL 中默认开启(需配置 log_bin 参数)。
2025-05-09 22:08:32
671
原创 MySQL OCP试题解析(3)
题目中的命令 mysqlbackup 使用了 backup-and-apply-log 参数,该参数的作用是在线备份(热备份),并在备份过程中完成事务日志(redolog)的解析和应用。A)错误:mysqlbackup 通过 --user、--port 等参数与 MySQL 服务器建立新连接,而非依赖“预先存在的连接”12。依赖事务一致性:备份的数据通过事务日志确保一致性,但 不保证与 DDL 操作的兼容性。无需停机,备份期间数据库仍可读写(非只读状态)。
2025-05-08 20:19:13
326
原创 MySQL OCP试题解析(1)
冲突管理通常是“多主复制”(multi-master replication)的功能,当多个主服务器同时写入同一数据时需解决冲突。多源复制的核心是“一个目标服务器从多个主服务器同步数据”,并非所有服务器都是主服务器。:多源复制的核心是“一对多”的逆向操作——“多对一”,即多个数据源(主服务器)向一个目标服务器同步数据。:多源复制的核心功能是让一个目标服务器(如从服务器)同时从多个主服务器接收数据。:这是单源复制的典型场景(如传统主从复制),一个主服务器向多个从服务器同步数据。
2025-05-06 20:44:23
344
原创 MySQL数据库BUG导致查询不到本该查到的数据
某些旧版本可能存在与降序索引相关的 bug,导致在使用降序主键和二级索引进行查询时出现问题。通常情况下,对于数字和字母组成的字符串比较,这种校对规则不会出现问题。在查询时,可能会因为这种影响导致索引无法正常工作,从而无法正确检索到符合条件的记录。在数据库的日常使用中,我们常常会遇到一些看似匪夷所思的查询问。的结果合并,但由于主键降序排列等因素,可能会导致两个索引的结果无法正确交集,进而出现查询结果为空的情况。若结果中出现其他字符,比如尾随空格,可能会导致比较时出现不匹配的情况。但是此案例明显不是。
2025-03-29 20:08:00
1171
原创 人人都学的会的小程序商城制作流程,微信小程序开发从 0 到 1
比如,某家美妆小程序商城,推出会员积分制,用户每次消费可获得积分,积分能兑换热门美妆产品小样或下次消费的折扣券。此外,还定期向会员推送专属新品优惠活动,吸引会员持续消费,培养用户对品牌的忠诚度,有效提升用户粘性。:在商家后台构建强大的商品管理功能,支持批量导入、编辑商品信息,包括上传高清图片、撰写详细产品描述、设定价格与库存。:搭建优惠券系统,设置满减、折扣、新人券等活动;:挑选稳定可靠的服务器供应商,完成服务器域名配置,确保小程序与后端数据交互稳定高效,避免出现加载缓慢、卡顿等影响用户体验的问题。
2025-03-28 20:08:38
411
原创 MySQL源码学习系列(二)--面试高频问题:general log、slowlog记录顺序
而慢查询日志则专注于记录执行时间超过指定阈值的 SQL 语句,帮助我们定位那些 “拖后腿” 的查询,从而进行针对性的优化。为了更好地诊断和解决这些问题,MySQL 提供了丰富的日志功能,其中 general log 和慢查询日志(slowlog)是两个非常重要的日志类型。至此,可以验证出MySQL在执行SQL语句时,先写general log、再执行SQL、最后写slowlog。MySQL在执行SQL语句时,先写general log、再执行SQL、最后写slowlog。MySQL数据备份及还原(一)
2025-03-28 20:08:38
972
原创 MySQL源码学习系列(一)-- 环境准备及常用命令
handler::ha_write_row / handler::ha_update_row:记录存储引擎层的数据写入和更新操作,适用于调试 InnoDB/MyISAM 引擎的存储逻辑或事务一致性相关问题。Query_expression::execute:用于跟踪查询执行计划的实际运行过程,尤其适用于分析复杂查询(如子查询、联合查询)的执行逻辑。my_net_read:客户端请求的读取函数,在此断点可观察客户端发送的原始数据包内容,常用于调试网络协议或客户端连接异常。这些答案及解题灵感都藏于源码中!
2025-03-27 08:08:38
669
原创 MySQL数据库修改小众参数解决大众问题
例如,即使某个索引的实际基数(cardinality)较低(即重复值较多),若将此参数设置为较低值(如100),优化器会认为“通过索引最多只需100次键值搜索即可完成查询”,从而更倾向于选择索引扫描而非全表扫描。所以如果查询中带有ORDER BY主键字段,优化器可能会倾向于使用主键索引,尤其是当有其他条件过滤后,如果结果集较小,可能更高效。只不过本次优化器的判断有点小失误,实际上使用上述其他索引(例如idx_c1_c2,idx_c1_c4,idx_c1_c5 )中的任意一个都比走PRIMARY耗时更低。
2025-03-21 20:08:36
667
原创 2025年微信小程序制作全流程,小程序商城也可以开发
微信商城小程序现在的社交平台都是很强大的,微信小程序商城的存在无疑就是锦上添花,可以通过小程序快速的视线传播推广,商家可以分销自己的小程序,并且经过 各种营销手段,来获取客户下单,很多APP需要下载,占用手机内存,非常的不方便,所以小程序的使用会更加符合大众的需求。我们在使用过之后,从微信上面一下拉就能找到这个商城小程序了。如何制作自己的商城小程序?首先咱们注册一个小程序账号。别担心,注册过程很简...
2025-01-08 17:18:22
522
原创 数据同步集成工具SeaTunnel
点击上方蓝字关注我 如今的信息时代,每天会产生大量的数据,这使得各种软件用到了不同的数据库存储,也需要在不同的存储间进行海量数据的同步、集成处理,一款好用且高效的工具是必备的。之前分享了国产数据库的同步工具、数据同步中间件等。国产数据库达梦DM8迁移工具国产数据库人大金仓Kingbase数据迁移工具使用数据库同步中间件DBSyncer实现不同数据库的数据同步今天继续分享另一款数据同步集成工具...
2024-12-11 20:38:42
684
原创 使用数据库同步中间件DBSyncer实现不同数据库的数据同步
点击上方蓝字关注我 有去O(ORACLE数据库)、信创、国产化数据库等项目实践的同学应该都遇到过不同数据库之前进行数据迁移的问题,虽然有各种工具可以实现,但是有些工具的部署、使用比较复杂,也有些工具迁移数据效率很低。本文将介绍一款开源且部署、使用简单、迁移相对高效的数据库中间件DBSyncer来进行数据迁移。该工具支持Oracle、MySQL、PostgreSQL、 SQL SERVER、...
2024-12-05 20:08:47
1600
原创 MySQL8.0 双密码机制:解决应用程序用户不停机修改密码问题
点击上方蓝字关注我在数据库管理中,定期更新密码是确保系统安全的重要手段。然而,如何在不影响现有连接的情况下平滑地切换密码,避免系统停机,始终是一个挑战。MySQL 8.0 引入的“双密码”机制为这种需求提供了有效的解决方案,使得密码更新过程能够无缝进行。1. MySQL8.0双密码特性自 MySQL 8.0.14 版本起,MySQL 支持为每个用户账户设置两个密码:主密码(新密码)...
2024-11-27 21:59:50
957
原创 MySQL8.0.40编译安装
近期MySQL发布了8.0.40版本,与之前的版本相比,部分依赖包发生了变化,因此重新编译一版,也便于大家参考。1. 下载源码选择对应的版本、选择源码、操作系统如果没有登录或者没有MySQL官网账号,可以选择只下载2. 进行编译上传至机器,解压源码tar -zxvf mysql-boost-8.0.40.tar.gz2.1 准备阶段因为编译安装需要cmake、make等命令,因此需提前安装...
2024-10-21 22:41:07
3028
原创 MySQL中如何随机获取一条记录
点击上方蓝字关注我随机获取一条记录是在数据库查询中常见的需求,特别在需要展示随机内容或者随机推荐的场景下。在 MySQL 中,有多种方法可以实现随机获取一条记录,每种方法都有其适用的情况和性能特点。在本文中,我们将探讨几种常用的方法,并推荐适合不同情况下的最佳方法。方法一:使用ORDER BY RAND()这是最常见的随机获取一条记录的方法之一:SELECT * FROM testdb....
2024-04-19 00:00:13
3502
1
原创 JDK版本升级后连不上MySQL数据库的问题
1. 问题描述用户在将 JDK 版本从 8 升级到 11 后,发现应用无法连接到 MySQL 数据库,出现连接超时或连接被拒绝的错误。例如出现如下报错信息:可能原因:JDBC驱动版本不兼容:新的 JDK 11 可能需要使用更高版本的 MySQL JDBC 驱动。SSL/TLS配置变更:JDK 11 的 SSL/TLS 配置可能与旧版本不同。加密算法更新:JDK 11 可能不再支持某些加密算法...
2024-04-09 21:51:14
1188
原创 探索MySQL递归查询:处理层次结构数据
在数据库管理中,处理具有层次结构的数据一直是一项常见任务。MySQL的递归查询功能通过公用表表达式(CTE)为处理这类数据提供了便捷的方式。递归查询可以用于管理组织结构、目录树等数据,使您能够轻松地查询任意节点的子节点、父节点或整个路径。1. 语法解释在MySQL中,递归查询的基本语法结构如下所示:WITH RECURSIVE cte_name AS ( -- 初始查询(第一次迭代) ...
2024-04-08 19:07:23
1889
原创 慢SQL探秘之为什么我的SQL很慢却没记录在慢查询日志里
在MySQL数据库中,想了解数据库运行情况的重要指标之一是慢SQL。而并非如某些人所说的所有运行慢的SQL都会被记录在慢SQL日志(或日志表)里,抑或是没有慢SQL就代表没有运行慢的SQL。本文将总结一些比较常见的运行比较慢但不会被记录在慢SQL日志里的情况。另外,慢SQL的计算方式在MySQL8.0新版本中有变化,因此,将通过对比MySQL5.7(MySQL5.7.38)与MySQL8.0(My...
2024-03-24 22:11:10
1293
原创 SQL SERVER 数据库安装
当年上学及第一份工作使用的主要数据库都是SQLSERVER,而现在SQL SERVER已经有很多新版本和特性出来了。部分同学安装时总是出现问题,下面就演示一下安装步骤。1. 下载及默认安装下载地址https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads选择免费的专用版本下载完成下载后,进行安装选择安装类型:学习使用阶段可以选择...
2024-03-23 09:01:36
891
原创 DBA面试题:MySQL缓存池LRU算法做了哪些改进?
下图是MySQL(MySQL5.7版本)体系架构图MySQL的InnoDb Buffer Pool 缓冲池是主内存中的一个区域,用来缓存InnoDB在访问表和索引时的数据。对于频繁使用的数据可以直接从内存中访问,从而加快处理速度。如果一台服务器专用作MySQL数据库使用时,通常将70%~80%(具体看总内存大小而定)的物理内存空间分配给缓冲池。缓冲池由多个缓冲池实例(innodb_buffer_p...
2024-03-14 22:10:49
1448
原创 给你汇总了MySQL各个版本的体系结构图
点击上方蓝字关注我InnoDB是MySQL中最重要的存储引擎之一,它的架构设计旨在提供高可靠性和高性能。以下是InnoDB架构的简要介绍:InnoDB架构主要包括两种结构:内存中结构和磁盘上结构。1.内存中结构• 缓冲池(Buffer Pool):缓存频繁访问的数据,减少磁盘I/O操作,提高查询性能。• 变更缓冲区(Change Buffer):缓存对二级索引页的更改,当这些页不在缓冲池中时,以...
2024-03-13 23:56:15
859
原创 MySQL 8.0与MySQL 5.7的binlog差异小结
点击上方蓝字关注我 MySQL是一个广泛使用的开源关系型数据库管理系统,它提供了许多强大的功能,如事务、存储过程、触发器、视图、全文索引等。但是,MySQL也有一些不足之处,比如数据的安全性和可靠性。如果数据库发生故障或损坏,如何恢复数据?如果数据库需要进行主从复制或读写分离,如何保证数据的一致性?这些问题都需要借助一个特殊的机制来解决,那就是binlog。1. binlog的主要用途...
2024-02-24 08:03:41
1436
原创 扫码点餐小程序制作很简单,食堂微信点餐、外卖功能全部配齐
微信餐饮小程序是一个专门针对餐饮企业的微信小程序,它可以帮助餐饮企业快速搭建微信小程序,并通过微信公众号和微信小程序实现线上订餐、外卖配送、预约点餐等功能。餐饮企业通过微信餐饮小程序可以快速实现菜单展示、在线订餐、预约点餐、外卖配送等功能,让顾客能够更方便、快捷地享受餐饮服务。餐厅信息、菜式展现点餐小程序在设计上充分考虑用户的使用习惯,加入了菜品分类目录元素。顾客除了可以直接滑动屏幕浏览菜式,还可...
2024-02-24 08:03:41
1075
原创 Redis如何修改key名称
点击上方蓝字关注我近期出现过多次修改Redis中key名字的场景,本次简介一下如何修改Redis中key名称的方法。1. 命令行方式修改在Redis中,可以使用rename命令来修改Key的名称。这个命令的基本语法如下:RENAME old_key new_key在这里,old_key是原来的Key名称,new_key 是你希望将其修改为的新Key名称。以下是具体的步骤:备份数据:在进行修改之前...
2024-02-23 08:03:01
1937
原创 微信小程序开店需要哪些流程,分销商城功能有吗?
微信小程序开店是一种基于微信平台的电子商务解决方案,它允许商家在微信内部创建自己的在线商店,以便用户可以直接在微信聊天界面中浏览商品、下单购买。以下是关于微信小程序开店的详细介绍:1. 注册和设置首先,商家需要在微信公众平台上注册一个小程序账号,并完成实名认证。注册过程中需要提供企业信息、营业执照等相关资料。注册完成后,商家可以使用微信提供的开发工具来设计和开发自己的小程序。2. 设计和开发微信小...
2024-02-23 08:03:01
573
原创 如何连接ACL认证的Redis
点击上方蓝字关注我应用程序连接开启了ACL认证的Redis时与原先的方式有差别,本文介绍几种连接开启ACL认证的Redis的Redis的方法。对于RedisACL认证相关内容,可以参考历史文章:Redis权限管理体系(一):客户端名及用户名Redis权限管理体系(二):终于等来了Redis权限控制体系ACLRedis权限管理体系(三):ACL 配置持久化1. Python 程序如果你想使用pyth...
2024-02-22 18:00:55
796
原创 微信商城小程序开发费用一览表,教你从 0 到 1 搭建小程序
READING在移动互联网时代,人们的购物方式已经发生了翻天覆地的变化。微信小程序商城应运而生,成为了一种新的购物方式。本文将为您介绍微信小程序商城的特点和优势,以及如何通过微信小程序商城实现个人创业和提升企业销售业绩。提供更好的用户体验:小程序操作简单,加载速度快,用户可以方便地进行商品浏览、下单购买等操作。积累用户活跃度:微信作为国内最大的社交平台之一,具备大量活跃用户,小程序可以借助微信的流...
2024-02-21 18:00:10
531
原创 如何制作一个微信扫码点餐小程序,外卖功能也有吗?
微信扫码点单小程序是一种基于微信小程序平台开发的点餐系统,它允许顾客在餐厅通过扫描桌上的二维码来直接下单。这种系统为餐饮业带来了革命性的变化,不仅提高了效率,也改善了顾客体验。以下是对微信扫码点单小程序的详细介绍:用户体验方面的好处:便捷性:顾客无需等待服务员来点单,只需用手机微信扫描桌上的二维码即可开始点餐。自助服务:顾客可以自主查看菜单、选择菜品、下单和支付,整个过程无需人工干预。实时反馈:顾...
2024-02-21 18:00:10
990
原创 MySQL数据恢复
点击上方蓝字关注我关于数据恢复之前已分享过2篇,链接如下:MySQL数据备份及还原(一)MySQL数据备份及还原(二)今天分享一下binlog2sql,它是一款比较常用的数据恢复工具,可以通过它从MySQL binlog解析出你要的SQL,并根据不同选项,可以得到原始SQL、回滚SQL、去除主键的INSERT SQL等。主要用途如下:数据快速回滚(闪回)主从切换后新master丢数据的修复从b...
2024-02-21 18:00:10
1167
原创 为什么需要MDL锁
点击上方蓝字关注我在数据库管理中,元数据(metadata)的保护至关重要,而MySQL中的"元数据锁"(MDL锁)就是它的守护者。1. 什么是MDL锁MDL锁,全名Metadata Lock,是MySQL中一种用于管理元数据访问的锁机制。元数据是指数据库中的对象信息,如表结构、索引等。2. 为什么需要MDL锁在MySQL中,如果没有MDL锁,可能会导致以下问题:并发修改元数据:多个事务同时尝试...
2024-02-20 18:18:29
525
原创 MySQL数据库如何生成分组排序的序号
点击上方蓝字关注我经常进行数据分析的小伙伴经常会需要生成序号或进行数据分组排序并生成序号。在MySQL8.0中可以使用窗口函数来实现,可以参考历史文章有了这些函数,统计分析事半功倍进行了解。而MySQL5.7中由于没有这类函数,该如何实现呢,下面对比MySQL8.0,列举两种情况的实现。1. 数据准备创建一张演示表#创建表CREATE TABLE users ( id INT PRIMAR...
2024-01-29 21:22:43
4176
1
原创 模糊搜索c1 like '%a%'真的都不能走索引么
点击上方蓝字关注我某DBA:like '%a%'肯定走不了索引的。。。在MySQL数据库使用规范或优化建议中都明确说类似 like '%a%'的写法不走索引。那么,真的是在任何条件下这种写法都不能走索引么?1. 不走索引的情况创建一个测试表并插入测试数据CREATE TABLE test_tb1(id INT PRIMARY KEY ,c1 VARCHAR(10),c2 VARCHAR(20...
2024-01-23 18:18:56
1128
原创 MySQL如何找到使用的是哪个配置文件?
点击上方蓝字关注我一个正在运行的MySQL实例,如何查看对应的配置文件用的是哪一个?如果存在多个文件,生效的顺序是怎么样的?1. 方法一首先可以先选择查看MySQL进程信息来判断使用了哪个配置文件,例如:ps -aux|grep mysqldroot 25628 0.0 0.0 112828 988 pts/0 S+ 19:13 0:00 grep --c...
2024-01-16 19:44:10
2049
1
原创 简单却强大:MySQL ZEROFILL让编号管理变得更轻松
点击上方蓝字关注我在MySQL中,ZEROFILL是一种用于在数字字段上进行填充零的属性。该属性通常用于确保数字达到指定长度时,左侧用零进行填充。这在某些特定场景下非常有用,例如确保订单号或者其他标识符具有固定的长度。1. 案例演示1.1 语法简介关于ZEROFILL属性是作用于数字类型的列上的,属于列属性,对于的语法简单描述如下:CREATE TABLE your_table ( ...
2024-01-10 21:39:13
2167
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人