自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

细致-专业-实操

Linux/MySQL/Oracle原创分享

  • 博客(539)
  • 收藏
  • 关注

原创 002、初识_REDIS简易安装

下载解压链接编译$ cd redis$ make版本查看。

2024-05-23 11:53:52 44

原创 前后端全栈开发运维平台-手把手安装部署-源码讲解

等。

2024-05-23 10:14:00 166 1

原创 运维管控平台-前后端全栈开发-手把手安装部署-完整源码

运管管控平台-前后端全栈开发-手把手安装部署-完整源码

2024-05-21 14:30:02 14

原创 066、故障处理之热点问题

分布式架构中各个组件的理想状态:资源利用率相对均衡。

2023-07-28 07:02:56 680

原创 065、故障处理之OMM_TiKV

Raftstore 数据写入环节内存占用高。目标服务器混不了其他组件且内存占用高。

2023-07-27 06:55:26 385

原创 064、故障处理之OMM_TiDB

oom 内存溢出,内存泄漏,相当于TiDB不能用了。

2023-07-26 21:29:30 747

原创 063、故障处理之快速恢复数据

目的:尽快修复数据,恢复业务。

2023-07-25 06:42:58 931

原创 062、监控指标之PD

大表清理后,出现了大量的空region, 空的region会干扰pd的调度。所以要及时的merge。store 上的region是否均衡。是否存在异常状态的TiKV。警告=》严重=》紧急。

2023-07-25 06:41:21 75

原创 061、监控指标之TiKV

这个图可以判断KV Rquest 多 ,这图包含网络+TiKV的返回耗时。如果要判断到底是网络还是TiKV处理多。写线程的数量不要超过: 90% * storage.scheduler_worker_pool_size。apply线程不要超过: 80% * raftstore.apply-pool-size。raft线程不要超过: 80% * raftstore.store-pool-size。region 如果超过5万个,可能会影响与pd的心跳。** TiDB写入流程**这个相当于是整体处理图。

2023-07-24 14:48:52 113

原创 060、监控指标之TiDB

连接虽然不做限制,但执行SQL前,需要获取Token,拿到token的sql才可以被处理,没有拿到的就需要等待。如果这个延迟很高,则表示SQL需要等很久才能拿到token。事务出的问题,往往是大事务出现了。Transaction - Transaction Statement Num: 事务内部的语句量。CPS: command 例如 select 1;optimistic: 乐观事务;duration: 就是所有SQL的平均执行时间。压测的时候会关注,平常基本不怎么关注。事务的平均响应时间。

2023-07-24 14:48:11 170

原创 059、集群优化之TiKV

当有阻塞或冲突的时候, sp会给这些写动作排序,获得latch的继续往下走(继续写),没有获得latch的等着。由于TiKV中采用2个RocksDB作为raft log和kv数据的存储,所以当memtable或者level 0的数量过多时,RocksDB就会对于写入进行减速,从而达到自我保护的目的,这个动作叫做write stall。它会将所有的读请求分一个优先级,默认都放在最高优先级L0 ,如果一直读不出来,则可能会降级, 保证快速的短的能尽量快速读出来。不建议关闭,新版本默认是开启的。

2023-07-23 11:22:09 104

原创 058、集群优化之PD

调度中还有这还缺来了merge,例如合并空region。store: 基本信息,容量,剩余空间,读写流量等region: 范围,副本分布,副本状态,数据量,读写流量等。

2023-07-23 11:21:38 199

原创 057、集群优化之TiDB及操作系统

对于数据库系统,选择时刻CPU以高性能(performance)的方式工作。CPU动态节能技术用于降低服务器功耗,通过选择系统空闲状态不同的电源管理策略,可以实现不同程度的降低服务器功耗。更低的功耗策略意味着CPU唤醒更慢、对性能影响更大。内存直接绑定在CPU上,CPU只有访问自身管理的内存物理地址时,才会有较短的响应时间。NUMA架构的服务器,通过绑定NUMA节点,尽可能地避免跨NUMA访问内存,提升tidb server性能。可使用numactl命令绑定。

2023-07-22 08:28:18 247

原创 056、查询优化之优化实战

索引扫描范围过大,无论优化器是选择index scan还是table scan,TiDB都倾向 TiKV corprocessor请求读取大量的数据。Coprocessor CPU 使用率飙升 -> CPU 资源耗尽 -> 集群的duration升高。大量数据删除 -> 加载到内存 -> 打满TiDB的内存 -> 导致OOM。现象:执行计划不稳定可能会导致业务的相应延迟升高,duration出现抖动的情况。- 使用sql hint的方式更改执行计划。方案一: 及时收集统计嘻嘻。

2023-07-22 08:27:39 66

原创 055、查询优化之基于索引的优化

TiDB中的Online DDL。

2023-07-21 06:07:50 127

原创 054、查询优化之统计信息

执行计划是需要统计信息辅助的。

2023-07-21 06:06:35 109

原创 053、查询优化之执行计划

EXPLAIN 的输出id: 算子的ID。是算子在整个执行计划中唯一的标识,从上到下,从右至左estRows: 估算返回的行数,算子语句将会输出的数据条数task: 算子的种类root: TiDB执行的cop[tikv]: 下推到tikv上执行的access object: 访问的对象,例如索引或者表或者分区operator info : 算子详细信息EXPLAIN ANALYZE的输出EXPLAIN ANALYZE 会执行对应的SQL语句,记录其运行的信息,并且和执行计划一起返

2023-07-20 20:45:23 134

原创 052、查询优化之优化器原理

用户发出一条sql,通过协议层(mysql),传输到parse(将SQL解析成AST语法树这一样个东西),这个语法树是以树型的方式读取,这个AST接下来就到预处理(它主要是针对point query),如果是点查(这条语句可以直接通过唯一索引或者主键索引,只返回一行数据)的SQL 就不用逻辑优化或者物理优化,直接通过索引就把数据取出来了。所以如果在pre process中发现是点查就直接推到 执行器执行。

2023-07-20 20:44:14 176

原创 051、事务设计之TiDB事务实现方式

提交的第一阶段,会用三个CF 来存放这些数据信息,一类列簇对应一类键值对, 第一个CF(default)存放的是数据 的键值对。第二个存放的是锁信息。第三个对应的是提交信息。put 3_100: primary_tso 表示是在事务时间戳100的时候对3这个主键进行修改。注意增删改的操作,里面放的都是新数据。

2023-07-19 06:42:42 406

原创 050、事务设计之Percolator事务模型

如果此时其它行 无法加这个锁,则表示其他行正在被其它事务写入,则此时当前这个事务会报错,把指向的主行上面的锁也清掉。(相当于整个分布式事务直接回滚)快照隔离级别类似可重复读,事务能读到的数据都是事务开始那一刻能看到的数据。其它行也加锁(但这个锁的内容是指向主行),所以真正的锁只有一把在主行上。primary key: 选择任一一行作为主行,这里不是说主键。事务3的开始时间是晚于事务1和事务2的提交时间,所以都能看到。分布式时钟: 给事务分配时间标识。白色点:代表事务开始时间。黑色点:代表事务结束时间。

2023-07-19 06:42:11 1558

原创 049、事务设计之分布式基本原理

iso定义的隔离级别可串行化可重复读读已提交读未提交隔离级别区分的现象脏读: 一个事务读取另一个未提交的事务所做更改不可重复度 :同一事务中,前后执行相同的语句,出来的记录不一样幻读: 同一事务中,相同的查询出现了新的行记录TiDB支持以下事务隔离级别:Read Commited 和 Repeatable Read。悲观事务模式支持: Read Commited 和 Repeatable Read。设置会话隔离级别。

2023-07-18 05:04:07 160

原创 048、TiDB特性_TiEM(了解)

TiDB Enterprise Manager,类似oracle的OEM。

2023-07-18 05:03:37 72

原创 047、TiDB特性_TopSQL

之前没有办法找单个TiKV Server的语句。只能查找整个集群的慢语句。

2023-07-17 06:29:29 169

原创 046、TiDB特性_内存悲观锁(了解)

其实内存悲观锁丢失了也没有太大问题,TiDB的机制是对其进行事务回滚。为了解决上面两个问题。

2023-07-17 06:28:54 216

原创 045、TiDB特性_读取数据副本

当系统中存在读取热点 Region 导致 leader 资源紧张成为整个系统读取瓶颈时,启用 Follower Read 功能可明显降低 leader 的负担,并且通过在多个 follower 之间均衡负载,显著地提升整体系统的吞吐能力。由于follower region可能不是最新数据,此时又想通过查询follower的region来降低热点的频率,此时可以通过设置TIDB_BOUNDED_STALENESS 来读取指定时间范围当中的最新数据。该事务将会基于所提供的历史时间来读取历史数据。

2023-07-16 20:16:06 340

原创 044、TiDB特性_PlacementPolicy

根据前面的描述,标签可以是用来描述 TiKV 属性的任意键值对,但 PD 无从得知哪些标签是用来标识地理位置的,而且也无从得知这些标签的层次关系。其中,location-labels 配置是一个字符串数组,每一项与 TiKV 的 labels 的 key 是对应的,且其中每个 key 的顺序代表了不同标签的层次关系。注意: 这个region 不是说tikv的存储单元,这个就是地区的意思,用于打标签,自定义的。PD 在副本调度时,会按照 label 层级,保证同一份数据的不同副本尽可能分散。

2023-07-16 20:15:05 427

原创 043、TiDB特性_缓存表和分区表

针对于优化器在索引存在时依然使⽤全表扫描的情况下,使⽤缓存表和分区表是提升查询性能的有效⼿段。

2023-07-15 06:43:29 652

原创 042、TiDB特性_系统表的使用

查询deadlocks 表,来确定死锁情况。

2023-07-15 06:42:21 355

原创 041、TiDB特性_在线索引

索引:指向行记录的指针以加快数据检索速度快速找到表里的行记录避免全表扫描提高查询性能Unique Key可以通过 CREATE INDEX 语句创建索引信息系统表: information_schema.tidb_indexes,索引名称: KEY_NAME获取索引的定义。

2023-07-14 08:52:50 1998

原创 040、TiDB特性_外键

实际:工作中其实也不希望外键在数据库层面,更多在业务层更好。

2023-07-14 08:50:59 201

原创 039、TiDB特性_索引结构

indexPrefixSep: 索引位置。例如复合索引,2,表示第二个列。

2023-07-13 06:23:37 1039

原创 038、TiDB特性_聚簇索引和非聚簇索引

主键⾮聚簇索引: ⾏数据的键由隐式分配的 _tidb_rowid 构成, 主键在 _tidb_rowid 上额外再建⽴索引,存储⼀⾏⾄少需要两个键值对。5、查看table region的数量,和region的start_key和end_key,记录每个region的written_bytes数据。性能比没有主键的差。3、查看每个region 的 start_key和end_key,和每个Region的written_bytes数据。实验2、 创建一个聚簇索引的表并查看每个region的key的范围。

2023-07-13 06:22:33 822

原创 037、TiDB特性_管理DDL

【代码】037、TiDB特性_管理DDL。

2023-07-12 06:07:27 241

原创 036、TiDB特性_临时表

用户可通过 CREATE GLOBAL TEMPORARY TABLE 语句创建全局临时表,语句末尾要加上 ON COMMIT DELETE ROWS。可通过 DROP TABLE 或 DROP GLOBAL TEMPORARY TABLE 语句删除全局临时表。• 用户可通过 CREATE TEMPORARY TABLE 语句创建本地临时表,通过 DROP TABLE 或 DROP TEMPORARY TABLE 语句删除本地临时表。

2023-07-11 06:22:28 665

原创 035、TiDB特性_没有主键的随机ID

【代码】035、TiDB特性_没有主键的随机ID。

2023-07-11 06:21:12 584

原创 034、TiDB特性_AUTO_RANDOM

如以上语句,由于未指定主键列的值( a 列),TiDB 会使⽤连续⾃增的⾏值作为⾏ ID,可能导致单个 TiKV 节点上产⽣写⼊热点,进⽽影响对外提供服务的性能。通过随机的产生主键,让数据分布在不同的region上。若要使⽤⼀个不同的 shard bits 的数量,可以在 AUTO_RANDOM 后⾯加⼀对括号,并在括号中指定想要的 shard bits 数量。该⾏值在⼆进制形式下,除去符号位的最⾼五位(称为 shard bits)由当前事务的开始时间决定,剩下的位数按照⾃增的顺序分配。

2023-07-10 16:16:24 1043

原创 033、TiDB特性_AUTO_INCREMENT

AUTO_INCREMENT: 是⽤于⾃动填充默认字段值的属性。注意:这个会报错,提示插入的是重复值。auto_increment 属性。

2023-07-10 09:02:02 1054

原创 032、TiDB特性_闪回表

闪回表。

2023-07-09 07:11:13 162

原创 031、SQL语句之预编译

动态语句和SQL注射。

2023-07-09 07:10:22 218

原创 030、SQL语句之数据类型与表达式

布尔类型,别名为 BOOL,和 TINYINT(1) 等价。零值被认为是 False,非零值认为是 True。在 TiDB 内部,True 存储为 1,False 存储为 0。枚举类型是一个字符串,它只能有一个值的字符串对象。M 表示比特位的长度,取值范围从1到64,其默认值是1。timestamp : 受时区影响,并且最大范围是2038年。NULL 是一个SQL关键字,用于定义允许缺失值的数据类型。用于精确数值:整数、小数或两者。10: 整数+小数一共多少位。用于近似值:整数、小数或两者。

2023-07-08 08:59:16 1050

分布式数据库-信创数据库-国产数据库与传统mysql的兼容性测试案例

分布式数据库_信创数据库_国产数据库与传统mysql的兼容性测试案例

2023-03-13

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除