摘要:
一、各种树形结构 1、二叉树:允许每个节点下最多有两个子节点 二叉树在数据库中不使用的原因是: 1)、树长歪了 》树的倾斜问题 查询的代价是不可控的,主要原因是树的高度不可控; 2)、二叉树限定每个节点下最多只有两个节点,能存放的数据是有限的,当数据量很大时,二叉树必然具有很大的高度; 2、B Tr 阅读全文
摘要:
InnoDB引擎主要包含几个重要部分: 1、内存池 1.1 缓冲池 InnoDB将记录按页的形式进行管理,对于页的修改先修改缓冲池中的页,后以一定频率进行刷新到磁盘中(checkpoint)。在数据库的页读取操作时,将也缓存到缓冲池中,下一次如读取相同的页,则无需从磁盘中加载。缓存池大小通过inno 阅读全文
摘要:
背景: 测试MySQL磁盘临时表是否会占用文件系统的cache? 环境准备: 1、使用sysbech创建2张表,每张20W数据。 测试: 1、记录当前cache内的文件、记录内存的值,记得tmp状态值,重启mysql,让ibtmp1文件重置为12M a、内存值 b、cache内的文件 c、tmp当前 阅读全文
摘要:
roxySQL的基本简介: ProxySQL是用C++语言开发的,虽然也是一个轻量级产品,但性能很好(据测试,能处理千亿级的数据),功能也足够,能满足中间件所需的绝大多数功能,可以更好更好的支持master slave\MGR\PXC等高可用集群,常见功能分库分表、SQL审计、负载均衡、主从切换,以 阅读全文
摘要:
简介: Show Profile是mysql提供的可以用来分析当前会话中sql语句执行的资源消耗情况的工具,可用于sql调优的测量。默认情况下处于关闭状态,并保存最近15次的运行结果。 1、开启show profile功能,默认该功能是关闭的,使用前需开启 mysql> show variables 阅读全文
摘要:
一、为什么使用MySQL线程池 1、减少线程重复创建与销毁部分的开销,提高性能 线程池技术通过预先创建一定数量的线程,在监听到有新的请求时,线程池直接从现有的线程中分配一个线程来提供服务,服务结束后这个线程不会直接销毁,而是又去处理其他的请求。这样就避免了线程和内存对象频繁创建和销毁,减少了上下文切 阅读全文
摘要:
背景 线下数据库,成天有人要求运维执行这sql那sql的,又苦逼又容易背锅,问了下公司的DBA大神,推荐了see审计平台,执行sql有审计记录,留痕留痕留痕,重要的事情说三遍,即使是线下环境,谨防有人删库跑路找不到人,可以解决运维一大痛点。 审计平台介绍 数据库审计平台作用 《对于开发人员》提交代码 阅读全文
摘要:
archery SQL审核平台 项目位置:https://github.com/hhyo/archery 背景 SQL审核是对MySQL语句写法的统一化,标准化,避免因为SQL的不规范、语法错误等导致出现误删、误更新数据、数据库性能下降等问题。早期的人工审核,针对标准这个问题其实是很吃力的,标准越多 阅读全文
摘要:
1、背景 Orchestrator(orch):go编写的MySQL高可用性和复制拓扑管理工具,支持复制拓扑结构的调整,自动故障转移和手动主从切换等。后端数据库用MySQL或SQLite存储元数据,并提供Web界面展示MySQL复制的拓扑关系及状态,通过Web可更改MySQL实例的复制关系和部分配置 阅读全文
摘要:
一、GTID概念介绍 GTID是mysql5.6版本出来的新特性 GTID即全局事务ID (global transaction identifier), 其保证为每一个在主上提交的事务在复制集群中可以生成一个唯一的ID。mysql主从结构在一主一从情况下对于GTID来说就没有优势了,而对于2台主以 阅读全文