索引结构
InnoDB B 树
上面是二叉树和红黑树的结构,其实红黑树是一个自平衡二叉查找树,可以用于解决二叉树顺序插入时形成一个有序链表问题。
但是两者都有一个明显缺点,就是当数据量过大时,层级较深,检索速度慢。
下面分析一下 B树(多路平衡查找树)
名词解析:
度数:指的是一个节点的子节
在现代商业环境中,数据库是企业存储核心数据的重要工具,而 MySQL 作为最受欢迎的关系型数据库管理系统,广泛应用于各行各业。在容灾、数据迁移、备份恢复等场景下,为了确保两端或多端之间数据的一致性,通常需要对数据进行一致性对比。
而数据对比的传统做法 “人工抽检” 通常需要进行一道道繁琐的工序,包
MySQL 和 Elasticsearch 是两种不同的数据管理系统,它们各有优劣,适用于不同的场景。本文将从以下几个方面对它们进行比较和分析:
数据模型
查询语言
索引和搜索
分布式和高可用
性能和扩展性
使用场景
数据模型
MySQL 是一个关系型数据库管理系统(RDBMS),它使用表(tab
mysql备份恢复(mysqldump备份 mysqlbinlog恢复)
一、备份的分类
物理备份
物理备份:对数据库操作系统的物理文件(如数据文件、日志文件等)
冷备份(脱机备份) :是在关闭数据库的时候进行的
热备份(联机备份) :数据库处于运行状态,依赖于数据库的日志文件
温备份:数据
什么是 MySQL 和 MongoDB
MySQL 和 MongoDB 是两个可用于存储和管理数据的数据库管理系统。MySQL 是一个关系数据库系统,以结构化表格格式存储数据。相比之下,MongoDB 以更灵活的格式将数据存储为 JSON 文档。两者都提供性能和可扩展性,但它们为不同的应用场景提供
SQL 性能分析
SQL 执行频率
MySQL 客户端连接成功后,通过 show [session | global] status 命令可以提供服务其状态信息。通过下面指令,可以查看当前数据库 CRUD 的访问频次:
SHOW GLOBAL STATUS LIKE 'Com_______'; 七
一、前言
原有的业务系统跑在MySQL主从架构中,高可用通过脚本完成,但存在切换数据丢失和切换不及时风险,调研了高可用更稳定的MGR后,准备入手一试。本篇文章主要记录GreatSQL从单机扩展到MGR的详细过程,遇到的问题及解决方法。
二、基础环境
服务器角色如下
IP
端口
主机名
作用
172
XtraBackup数据备份与恢复(全部、增量、差异)
前言
1.XtraBackup介绍
Percona-xtrabackup是 Percona公司开发的一个用于MySQL数据库物理热备的备份工具,支持MySQL、Percona server和MariaDB,开源免费,是目前较为受欢迎的主流备
Sequelize是一个基于Node.js的ORM框架
特点:
1、支持多种数据库:Sequelize支持多种关系型数据库,包括MySQL、PostgreSQL、SQLite和MSSQL等,适用于需要在不同数据库间切换或者兼容多种数据库的项目。
2、强大的查询功能:Sequelize具有
srandmember key [count]count: 为可选的参数 作用: 如果 count 为正数,且小于集合基数,那么命令返回一个包含 count 个元素的数组,数组中的元素各不相同。如果 count 大于等于集合基数,那么返回整个集合。如果 count 为负数,那么命令返回一个数组,数
1、背景
公司内部看到一则问题
1、kill -9 mysqld_safe 进程
2、systemd 检测到 mysqld_safe 进程不存在后,重新拉起 mysqld_safe 进程
3、mysqld_safe 进程启动后,发现 mysqld 进程也被重启
期望:启、停 mysqld_sa
抛砖引玉:多个查询需要在同一时刻进行数据的修改,就会产生并发控制的问题。我们需要如何避免写个问题从而保证我们的数据库数据不会被破坏。
锁的概念
读锁是共享的互相不阻塞的。多个事务在听一时刻可以同时读取同一资源,而相互不干扰。
写锁的排他的。一个写锁会阻塞其他写锁或读锁。出于安全考虑只有这样才能
mysql复制技术/mysql集群
准备
1.四台虚拟机都关闭防火墙
systemctl stop firewalld
systemctl disable firewalld
2.四台虚拟机都设置好host域名解析,在/etc/hosts文件中添加如下
[root@mysql01 ~]# vi
说到分布式事务,大家并不陌生。在实际工作中,用得比较多的还是柔性分布式事务,今天主要把在工作中运用到的几种柔性分布式事务的场景及实现方式做一个简单介绍,也可以看做是柔性分布式事务的一个演进过程。
一、调用方保证
这种方式适合业务内自己使用,当方法内的任务一个逻辑发生异常时,整个方法都异常,由调用方
1. 问题背景
问题发生在快递分拣的流程中,我尽可能将业务背景简化,让大家只关注并发问题本身。
分拣业务针对每个快递包裹都会生成一个任务,我们称它为 task。task 中有两个字段需要关注,一个是分拣中发生的异常(exp_type),另一个是分拣任务的状态(status)。另外,需要关注分拣状态
1. EXPLAIN详解
本文基于MySQL 8.0编写,理论支持MySQL 5.0及更高版本。
2. EXPLAIN使用
2.1 explain分析SQL的执行计划
{EXPLAIN | DESCRIBE | DESC}
tbl_name [col_name | wild]
{EXPLAI
1. 逻辑架构
1.1. 大多数基于网络的客户端/服务器工具或服务器都有类似的服务
1.1.1. 连接处理
1.1.2. 身份验证
1.1.3. 确保安全性
1.2. 核心层
1.2.1. 查询解析、分析、优化、以及所有的内置函数
1.2.2. 跨存储引擎的功能
1.2.2.1. 存储过程
1.
一、引言
1.1 什么是MySQL Shell ?
MySQL Shell 是 MySQL 的一个高级客户端和代码编辑器,是第二代 MySQL 客户端。第一代 MySQL 客户端即我们常用的 MySQL 。除了提供类似于 MySQL 的 SQL 功能外,MySQL Shell 还提供 JavaSc
1. 事务日志
1.1. 事务日志有助于提高事务的效率
1.1.1. 存储引擎只需要更改内存中的数据副本,而不用每次修改磁盘中的表,这会非常快
1.1.2. 更改的记录写入事务日志中,事务日志会被持久化保存在硬盘上
1.2. 事务日志采用的是追加写操作,是在硬盘中一小块区域内的顺序I/O,而不是
MySQL 作为当前应用最广泛的开源关系型数据库之一,具有高性能、稳定性和易用性等特性,是许多网站、应用和商业产品的主要数据存储。在一些场景中,如果出现单表行数上亿的情况,就可能需要开发和 DBA 对大表进行优化:分表、归档或扩容操作,而在这些操作中都涉及了对数据的迁移。所以,提供高效、准确、稳定