随笔分类 - 数据库
摘要:一、Binlog MySQL 的二进制日志(Binlog)是记录数据库变更操作的核心机制,主要用于主从复制和数据恢复。Binlog 有三种记录格式:STATEMENT、ROW 和 MIXED。它们的核心区别在于 记录数据变更的方式,以下是详细说明和示例: 1.1、Binlog 的三种格式 格式 记录
阅读全文
摘要:1、某些场景下可以把筛选力度小的字段在联合索引中的字段顺序提前 我们都知道,联合索引比对每个列分别建索引更有优势,因为索引建立得越多就越占磁盘空间,在更新数据的时候速度会更慢。另外建立多列索引时,顺序也是需要注意的,应该将严格的索引放在前面,这样筛选的力度会更大,效率更高。 但是如果某字段的值是唯一
阅读全文
摘要:一、问题概述 今天碰到个很奇怪的现象,现象是发现数据库有张表的某几条记录的创建时间大于修改时间,非常奇怪,打工这么多年,第一次碰到这个问题 首先查看 mysql 表结构,怀疑 create_time 字段设置了本应该设置在了 update_time 字段上的 on update CURRENT_TI
阅读全文
摘要:Redis的过期策略按照两个维度工作:被动过期和主动过期。 被动过期:只有当有客户端尝试访问一个已经过期的key时,Redis才会删除该内容。 主动过期:为了防止过期的key未被立即清理,造成内存浪费,Redis会周期性地随机检查一些key是否已经过期,如果过期,则予以删除。 Redis的过期时间是
阅读全文
摘要:内容来自对 chatgpt 的咨询 前言(INSERT...ON DUPLICATE KEY UPDATE 介绍) 当你在MySQL中插入数据,如果唯一键发生冲突,可以使用 INSERT...ON DUPLICATE KEY UPDATE 语句实现插入和更新操作。其基本语法如下: INSERT IN
阅读全文
摘要:内容来自对 chatgpt 的咨询 题目 假设你有一张学生数据库表,需要通过golang 的gorm查询某个id的学生实体 查询 demo 在这段代码中,"student"变量是一个Student类型的结构体,用于存储查询结果。我们通过调用gorm.DB的Where方法和 First 方法,将第一个
阅读全文
摘要:内容来自对 chatgpt 的咨询 我们可以使用exists查询来检查user_name字段是否存在且包含非空值: { "query": { "bool": { "must": { "exists": { "field": "user_name" } } } } } 这个查询将会返回所有包含user
阅读全文
摘要:**转自**:[SQL Update:使用一个表的数据更新另一张表 ](https://www.cnblogs.com/rainman/p/3584005.html)、[update 关联两个表](https://blog.csdn.net/qq_34068082/article/details/1
阅读全文
摘要:转自:详解mysql delete删除记录数据库空间不减少问题三种解决方法 1、使用 OPTIMIZE 命令 mysql> optimize table act_demo_test; 注意:在OPTIMIZE TABLE运行过程中,MySQL会锁定表。因此,这个操作一定要在网站访问量较少的时间段进行
阅读全文
摘要:1、MySQL 导出不同类型的表结构 1.1 导出结构不导出数据 mysqldump -h 主机地址 -u root -p 密码 -d 数据库名 > xxx.sql # 加 -d 参数 如果发现加了 -d 参数还是会导出数据,可以尝试再加个 --no-data 参数 1.2 导出数据不导出结构 my
阅读全文
摘要:本文主要节选和总结自沈剑大佬的四篇文章 必备,前台与后台分离的架构实践 单KEY业务,数据库水平切分架构实践 | 架构师之路 1对多业务,数据库水平切分架构一次搞定 | 架构师之路 多对多业务,数据库水平切分架构一次搞定 1、前台后台分离架构 1.1 前后台用户访问的特点 用户侧,前台访问的特点是:
阅读全文
摘要:本文主要参考沈剑大佬的多篇缓存相关博文和博文的精彩评论,以及数位网友的优秀分享,文末是完整参考,其中第二章节直接节选自沈剑大佬的文章。 1、单体数据库,缓存不一致问题 1.1 Cache Aside Pattern(旁路缓存模式) 读:从 cache 中读取数据,读取到就直接返回,读取不到的话,就从
阅读全文
摘要:本文依旧主要参考沈剑大佬的十多篇博文,以及数位网友的优秀分享,文末是完整参考。 1、索引 1.1 B 树 多叉平衡查找树,多叉平衡以及磁盘预读使得 B 树查找效率特别高。 多叉(多路)性:每个结点有若干个关键字,相同数量的 key 在btree中生成的节点要远远小于二叉搜索树节点,相差的节点数目正比
阅读全文
摘要:节选和总结自:沈剑大佬的 啥,又要为表增加一列属性? 、这才是真正的表扩展方案 两篇文章和文章评论 高并发且数据量大情况下的表字段扩展 实际中用的最多是的是方案三和方案五 方案一:版本号 + 通用列 表新增 2 列,一列是扩展字段,一列是版本号,版本号是扩展字段属性的迭代版本。扩展字段值是一个jso
阅读全文
摘要:依旧主要参考沈剑大佬的多篇博文,以及数位网友的优秀分享,文末是完整参考。 1、高可用方案(HA,High Availability) 缓存是通过双写和双读主备、或者利用缓存的集群数据同步,故障自动转移来实现的 数据库的读是通过读写分离(MHA,Master High Availability),分库
阅读全文
摘要:本文是对沈剑大佬锁机制十多篇文章的概括总结,文末有全部链接,还参考了 10 多位其他网友的优秀分享。 1、概要 MySQL 中的锁可以按照粒度分为锁定整个表的表级锁(table-level locking)和锁定数据行的行级锁(row-level locking): 表级锁具有开销小、加锁快的特性;
阅读全文
摘要:“ 本文前半段主要参考和节选沈剑大佬的公众号的下面三篇文章,完整参考见文末” 敢说你没遇到过,主从数据库不一致? DB主从一致性架构优化4种方法 mysql并行复制降低主从同步延时的思路与启示 其他文章参考见文末:Mysql复制方式(半同步复制,并行复制,多源复制) 问:常见的数据库集群架构如何?
阅读全文
摘要:最近需要用到 MySQL 来开发项目,所以在 Mac 配置了下 MySQL 的环境。 1、使用 brew install mysql 安装 MySQL 安装完毕后会有以下提示信息,告诉我们初始安装好后 root 账户没有密码,只需要输入 mysql -uroot就能连接运行MySQL。 那咱们输入
阅读全文
摘要:我的情况和解决方案 这种错误大概率是 ES 的查询语句语法错误,比如我当时是,时间筛选的条件的格式写错了,导致 ES 查询时解析错误,从而报了all shards failed [type=search_phase_execution_exception]这个错误 排查思路:先想办法把查询 DSL
阅读全文
摘要:alter table <原来的表名> rename to <新表名>; 参考:SQL 中修改表名
阅读全文

浙公网安备 33010602011771号