不做大哥好多年 不做大哥好多年
首页
  • MySQL
  • Redis
  • Elasticsearch
  • Kafka
  • Etcd
  • MongoDB
  • TiDB
  • RabbitMQ
  • 01.GO基础
  • 02.面向对象
  • 03.并发编程
  • 04.常用库
  • 05.数据库操作
  • 06.Beego框架
  • 07.Beego商城
  • 08.GIN框架
  • 09.GIN论坛
  • 10.微服务
  • 01.Python基础
  • 02.Python模块
  • 03.Django
  • 04.Flask
  • 05.SYL
  • 06.Celery
  • 10.微服务
  • 01.Java基础
  • 02.面向对象
  • 03.Java进阶
  • 04.Web基础
  • 05.Spring框架
  • 100.微服务
  • Docker
  • K8S
  • 容器原理
  • Istio
  • 数据结构
  • 算法基础
  • 算法题分类
  • 前置知识
  • PyTorch
  • 01.Python
  • 02.GO
  • 03.Java
  • 04.业务问题
  • 05.关键技术
  • 06.项目常识
  • 10.计算机基础
  • Linux基础
  • Linux高级
  • Nginx
  • KeepAlive
  • ansible
  • zabbix
  • Shell
  • Linux内核

逍遥子

不做大哥好多年
首页
  • MySQL
  • Redis
  • Elasticsearch
  • Kafka
  • Etcd
  • MongoDB
  • TiDB
  • RabbitMQ
  • 01.GO基础
  • 02.面向对象
  • 03.并发编程
  • 04.常用库
  • 05.数据库操作
  • 06.Beego框架
  • 07.Beego商城
  • 08.GIN框架
  • 09.GIN论坛
  • 10.微服务
  • 01.Python基础
  • 02.Python模块
  • 03.Django
  • 04.Flask
  • 05.SYL
  • 06.Celery
  • 10.微服务
  • 01.Java基础
  • 02.面向对象
  • 03.Java进阶
  • 04.Web基础
  • 05.Spring框架
  • 100.微服务
  • Docker
  • K8S
  • 容器原理
  • Istio
  • 数据结构
  • 算法基础
  • 算法题分类
  • 前置知识
  • PyTorch
  • 01.Python
  • 02.GO
  • 03.Java
  • 04.业务问题
  • 05.关键技术
  • 06.项目常识
  • 10.计算机基础
  • Linux基础
  • Linux高级
  • Nginx
  • KeepAlive
  • ansible
  • zabbix
  • Shell
  • Linux内核

不做大哥好多年

无人扶我青云志,我自踏雪至山巅。

04.MySQL索引 ✅ 常识原理

xiaonaiqiang 2021-02-22 数据库MySQL

MySQL的索引类型包括B+树、聚簇索引、非聚簇索引、哈希索引和空间索引。

B+树索引常用于单列、组合索引以及全文检索。

其中聚簇索引将数据存储在叶子节点,非聚簇索引通过主键指针查找数据。

组合索引遵循最左前缀原则。B树与B+树的区别在于数据存储结构,B+树只在叶子节点存储数据,适合范围查找。

MySQL中InnoDB引擎使用聚簇索引,MyISAM则使用非聚簇索引,数据存储和索引结构不同。

阅读全文

09.SQL执行过程 ✅ 常识原理

xiaonaiqiang 2024-02-07 数据库MySQL

MySQL 分为三层结构:

  • 客户端层 处理网络连接和授权认证
  • 服务层负责查询解析、优化、缓存以及存储过程、视图等
  • 存储层用于数据存储和引擎的交互

存储引擎层和文件系统交互,支持插件式引擎,如 MyISAM 和 InnoDB。

查询时,MySQL先进行 SQL 解析,再由优化器选择执行路径,最后通过存储引擎获取数据,结果返回客户端并可能缓存。

阅读全文

08.MVCC原理 ✅ 常识原理

xiaonaiqiang 2022-04-07 数据库MySQL 转载

MVCC(多版本并发控制)是数据库系统中的一种乐观并发控制方式,通过可见性算法实现高效的并发访问。

MVCC的两种读形式包括快照读(无需加锁,读取当前事务可见版本)和当前读(读取最新版本,涉及增删改操作)。

MVCC通过隐藏字段(如RowID、事务ID、回滚指针)和undo log(记录事务操作的日志)来实现。

可见性算法通过比较事务ID和系统活跃事务列表判断数据对当前事务的可见性,从而避免了锁的使用带来的性能问题。

阅读全文

03.Redis底层存储 ✅ 常识原理

xiaonaiqiang 2022-04-07 数据库Redis

Redis 使用五种数据类型:String、List、Hash、Set、ZSet

每个类型都有不同的底层实现以提高内存效率和性能String 类型支持整数、短字符串(embstr)和长字符串(raw)存储

List 类型使用 quicklist 结构,结合了双向链表和压缩列表(listpack)

Hash 类型根据数据量使用 ziplist/listpack 或 hashtable 存储

Redis 通过这些结构优化了内存占用和查询效率,适合缓存、计数器、分布式锁等场景

阅读全文

06.Redis线程模型 ✅ 常识原理

xiaonaiqiang 2024-03-15 数据库Redis 转载

Redis 使用单线程 Reactor 模型处理命令,主要通过主线程完成客户端请求的接收、解析、数据操作和响应发送。

6.0 版本之前,Redis 仅使用单线程处理所有任务,而 6.0 后引入了多线程来处理 I/O 操作,提升了网络性能。

多线程仅用于网络 I/O,如数据的读取和写入,核心的命令执行仍由单线程完成,确保数据操作的安全性与一致性。

这种改进提高了 Redis 的吞吐能力,特别适合高并发场景。

阅读全文

02.Map原理 ✅ 重要原理

xiaonaiqiang 2021-06-01 常识GO

Go语言的map底层是哈希表,通过哈希函数将键映射到对应的bucket中。

map的扩容通常在两个场景下触发:装载因子超过6.5和溢出bucket数量过多。

扩容时,bucket数量翻倍,旧数据逐步迁移到新bucket。

哈希表使用链表法解决哈希冲突,通过key的哈希值低位确定所属bucket,哈希值高位用于桶内定位key。

扩容过程中,新bucket的元素被重新分配,查找操作时优先查询新bucket,并逐步迁移旧数据。

阅读全文

01.GMP模型 ✅ 核心原理

xiaonaiqiang 2021-06-04 常识GO

早期操作系统为单进程架构,进程串行执行,造成低效。

多进程/线程操作系统改进了并发能力,但带来高内存占用和调度开销问题。

Go语言引入了轻量级的Goroutine,一个goroutine仅占几KB内存,并由用户态调度协作式执行。

Go采用GMP模型:G代表goroutine,M代表线程,P代表调度器。

P的数量与CPU核数匹配,通过全局队列、局部队列和偷取机制调度goroutine,减少调度开销,实现高效并发。

阅读全文

04.ES原理 ✅ 常识原理

xiaonaiqiang 2024-03-19 数据库Elasticsearch

Elasticsearch(ES)的核心原理包括搜索引擎的工作机制、倒排索引、索引的创建和更新、并发控制等

搜索引擎通过查询分析、分词、关键词匹配和搜索排序完成一次检索

倒排索引将关键词与文档建立映射关系,实现高效搜索

ES的索引具有不变性,通过创建新段(Segment)更新数据并发控制中,ES主要使用乐观锁机制确保一致性

ES写入流程包括写入内存、磁盘和提交操作,结合translog日志文件保障数据的持久性

阅读全文

05.ES集群原理 ✅ 常识原理

xiaonaiqiang 2021-04-27 数据库Elasticsearch

Elasticsearch (ES) 是一种分布式搜索引擎,具备去中心化架构和分布式集群特性。

ES 通过动态选举主节点来避免单点故障。

集群中的每个节点负责不同任务,包括主节点、数据节点、协调节点等。

数据通过分片和副本机制进行分布式存储和高可用性保证。主分片处理写操作,副本分片提供数据冗余和读操作支持。

ES 采用路由机制根据文档的 ID 选择目标分片,并且能够通过水平扩容和故障转移保证系统性能和可靠性

阅读全文

03.倒排索引 ✅

xiaonaiqiang 2021-04-27 数据库Elasticsearch

Lucene的索引结构包含三部分

Term Index(前缀树用于快速查找词项),Term Dictionary(存储词项及其关联信息),和Posting List(包含某词项的文档ID列表)。

倒排索引通过分词创建文档与词项的映射。

联合索引查询时,两个Posting List通过skip list或bitset进行合并。

Lucene还使用FST优化内存和Roaring Bitmap压缩文档存储,并通过嵌套文档减少文档数。

相比MySQL,Lucene通过内存缓存加快检索。

阅读全文

上一页

1 2 3 58 59

下一页

头像
逍遥子 不做大哥好多年
文章分类
数据库 82 MySQL 19 Redis 16 常识 56 GO 12 Elasticsearch 13 Kafka 6 Etcd 8 RabbitMQ 9 MongoDB 6 更多 ...
热门标签
转载 鸡汤 学习 知识
Theme by Vdoing | Copyright © 2019-2025 逍遥子 技术博客 京ICP备2021005373号
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式