随笔分类 - MySQL数据库
摘要:在MySQL5.5及以下传统复制的时代,MHA在MySQL高可用应用中非常成熟,在MySQL5.6的GTID时代开启以后,MHA却没有与新的MySQL一起顺应潮流,MHA最近一次发版是2018年。于是RadonDB开发团队研发并开源新一代MySQL集群高可用工具。基于Raft协议进行无中心化选主,实
阅读全文
摘要:https://www.hyouit.com?aff=418 ProxySQL是基于MySQL的一款开源的中间件的产品,是一个灵活的MySQL代理层,可以实现读写分离,支持 Query路由功能,支持动态指定某个SQL进行缓存,支持动态加载配置信息(无需重启 ProxySQL 服务), 支持故障切换和
阅读全文
摘要:##### 1、测试环境 目前MHA主要支持一主多从的架构,要搭建MHA,要求一个复制集群中必须最少有三台数据库服务器,一主二从,即一台充当master,一台充当备用master,另外一台充当从库. 一主两从的环境,通过GTID方式配置主从复制同步环境 | 用途 | IP地址 | 安装软件| MyS
阅读全文
摘要:MySQL Group Replication 在5.7.17版本之后出现的组复制技术。 操作系统:centos7.9 MySQL版本:8.0.24 查看uuid值,作为组复制时使用 ``` shell $ cat /proc/sys/kernel/random/uuid ba43a6fa-1b0f
阅读全文
摘要:https://www.hyouit.com?aff=418 主从复制模式包括异步复制、半同步复制、增强半同步复制、同步复制和组复制等。主从复制的前提至少两台同版本的数据库实例,具有不同的server_id 和 server_uuid,时间同步,主库开启 binlog 日志,从库开启relaylog
阅读全文
摘要:1、逻辑备份恢复 1.1、mysqldump 工具 常用选项参数 -A,--all-databases 备份所有数据库 -B, --databases 备份指定的数据库 -R, --routines 备份存储过程及函数 --triggers 备份触发器 -E, --events 备份事件 -F, -
阅读全文
摘要:https://www.hyouit.com?aff=418 1、行 数据库表中的记录都是按行(row)进行存放的,每行记录根据不同的行格式,有不同的存储结构。 2、页 InnoDB 的数据是按页(page)为单位来读写的,也就是说,当需要读一条记录的时候,并不是将这个行记录从磁盘读出来,而是以页为
阅读全文
摘要:1、索引压测 [root@localhost test]# mysqlslap --defaults-file=/etc/my.cnf --concurrency=100 --iterations=1 --createschema='test' --query="select * from tes
阅读全文
摘要:1、查询比较 普通索引和唯一索引性能差距不大。 2、更新比较 当需要更新一个数据页时,如果数据页在内存中就直接更新,而如果这个数据页还没有在内存中的话,在不影响数据一致性的前提下,InnoDB 会将这些更新操作缓存在 change buffer 中,这样就不需要从磁盘中读入这个数据页了。在下次查询需
阅读全文
摘要:1、锁 数据库锁设计的初衷是处理并发问题。作为多用户共享的资源,当出现并发访问的时候,数据库需要合理地控制资源的访问规则。而锁就是用来实现这些访问规则的重要数据结构。 2、锁定范围分类 根据加锁的范围,MySQL 里面的锁大致可以分成全局锁、表级锁和行锁三类。 2.1 全局锁 对整个数据库实例加锁。
阅读全文
摘要:1、存储单元 磁盘:最小单元是扇区,一个扇区的大小是 512个字节 文件系统:最小单元是块,一个块的大小是 4K InnoDB存储引擎:最小单元称之为页,一个页的大小是16K 2、B+树存储结构 mysql数据库中,table表中的记录都是存储在页中。假如一行数据的大小约为1K字节,那么按 16K
阅读全文
摘要:1、索引 索引是帮助MySQL高效获取数据的数据结构。在 MySQL 中,索引是在存储引擎层实现的,所以并没有统一的索引标准,即不同存储引擎的索引的工作方式并不一样。而即使多个存储引擎支持同一种类型的索引,其底层的实现也可能不同。 MySQL目前主要有以下索引类型: 普通索引key 唯一索引uniq
阅读全文
摘要:https://www.hyouit.com?aff=418 1、MySQL5.7升级8.0 原MySQL5.7安装路径 注意:${datadir}也就是数据路径,原来是什么,升级时就用什么,如果和原来路径不一样,升级时会报错 [root@dbs-slave opt]# cd mysql [root
阅读全文
摘要:1、事务 简单来说,事务就是要保证一组数据库操作,要么全部成功,要么全部失败。在 MySQL 中,事务支持是在引擎层实现的。MySQL 是一个支持多引擎的系统,但并不是所有的引擎都支持事务。比如 MySQL 原生的 MyISAM 引擎就不支持事务,这也是 MyISAM 被 InnoDB 取代的重要原
阅读全文
摘要:https://www.hyouit.com?aff=418 1、binlog 日志 binlog是server层自己的日志。作用可以用于备份恢复、主从复制、分析大事务。 为什么会有binlog和redo log两份日志呢? 因为最开始 MySQL 里并没有 InnoDB 引擎。MySQL 自带的引
阅读全文
摘要:https://www.hyouit.com?aff=418 1、redo log redo log(重做日志)是InnoDB存储引擎独有的,记录在某个数据页上做了什么修改,它让MySQL拥有了崩溃恢复能力。 MySQL中数据是以页为单位,你查询一条记录,会从硬盘把一页的数据加载出来,加载出来的数据
阅读全文
摘要:1、字符函数 1.1 length:获取字节量,受到字符集影响 # 数据库字符集为utf8mb4 # 空字符串,返回结果0 mysql> select length(''); # 空格,返回结果1 mysql> select length(' '); # 字符串'abc',每个英文字母占1个字节,返
阅读全文
摘要:1、基础架构 MySQL采用分层结构,主要包括server层和存储引擎层两部分。 Server层主要功能是权限管理和 SQL 解析。包括连接器、查询缓存、分析器、优化器和执行器等。涵盖MySQL的大多数核心服务功能,以及所有的内置函数,所有跨存储引擎的功能都在这一层实现,比如存储过程、触发器、视图等
阅读全文
摘要:https://www.hyouit.com?aff=418 1、故障现象 MySQL数据库无法启动,日志信息如下: 2023-01-18 04:00:39 7f0d83cc2700 InnoDB: Error: Write to file ./ib_logfile2 failed at offse
阅读全文
摘要:1、插入数据 查看表结构 mysql> desc t1; + + + + + + + | Field | Type | Null | Key | Default | Extra | + + + + + + + | id | int | YES | | NULL | | | name | char(6
阅读全文