随笔分类 - 数据库
摘要:这篇文章主要针对Redis中不同数据类型在各种业务场景下的应用进行一个介绍,以加深我们对Redis中数据类特性和操作的概念印象。 字符串 扩展操作 业务场景 大型企业级应用中,分表操作是基本操作,使用多张表存储同类型数据,但是对应的主键id必须保证统一性,不能重复。Oracle数据库具有sequen
阅读全文
摘要:1.为什么不直接使用语言中的字典映射来缓存而是用Redis? 当然如果只是将少量数据保存作为缓存并且没有持久化的需求,那么完全可以用Map做缓存。 Redis相较于语言的映射的优势: Redis 可以用几十 G 内存来做缓存,Map 不行,一般 JVM 也就分几个 G 数据就够大了。 Redis 的
阅读全文
摘要:慢查询日志 Redis的慢查询日志用来记录执行时间超过给点时长的命令请求,用户可以通过这个功能生产的日志来监视和优化查询速度。 服务器配置有两个慢查询日志相关的选项: slowlog-log-slower-than:规定执行时间超过多少微妙的命令会被记录到日志上。 slowlog-max-len:执
阅读全文
摘要:Redis也提供事务机制来满足ACID性质。 事务的实现 事务的整个过程会经历三个阶段: 事务开始 MULTI命令标志着事务的开始。 命令入队 如果客户端发送的是EXEC DISCARD WATCH MULTI四个命令,那么就会立即执行,其他的命令只会放入事务队列中等待执行。 事务执行 当服务器接收
阅读全文
摘要:主从复制 通过SLAVEOF命令,可以让两台服务器确认主从关系。以后的过程中,slave会与master保持数据一致性。 主从复制功能实现 Redis的复制功能分为同步和命令传播两个操作: 同步是将master的数据全部拷贝到slave上。 命令传播是已经完成了同步,在之后master被修改了,将修
阅读全文
摘要:数据库 数据库结构实现 Redis的数据库都保存在服务器中,一个服务器默认有16个数据库。 Redis服务器和数据库关系如图所示,其中dbnum就是指当前数据库的数量,db是一个数据库的数组。 每个客户端加粗样式都会指向一个数据库,可以通过select指令改变表当前使用的数据库。 每个数据库结构中都
阅读全文
摘要:Redis中的数据结构 简单动态字符串 链表 字典 跳跃表 整数集合 压缩列表 对象 1.简单动态字符串 Redis底层是用C语言实现的,所以,在很多数据结构上可以直接使用C语言中已经存在的数据结构和库函数。 Redis的字符串数据结构并没有直接使用C语言的字符数组,而是用了一个结构体,名为简单动态
阅读全文
摘要:索引 1. 什么是索引? 数据库用于提升查找速度的一种手段。 2. 索引分类 B+树索引 传统意义上的索引,最常用和最有效的。哈希索引 一种自适应,数据库根据表的使用情况自动生成。全文索引 用于实现关键词的搜索,根据空格来分词,不支持没有空格的语言。Rtree索引 MySQL上使用很少,范围查找很快
阅读全文
摘要:什么是数据库的事务? 事务是访问并更新数据库中各种数据的一个程序执行单元。事务也是数据库区别于文件系统的一个重要特性。 事务需要满足的特性 1.原子性 原子性就是指数据库中的一个完整的事务是不可分割的工作单位。要么都成功,要么都失败,不能执行一部分。 2.一致性 一致性指事务将数据库从一种状态转变为
阅读全文
摘要:什么是数据库的锁? 锁是数据库系统区别于文件系统的一个关键特性。锁机制用于管理对共享资源的并发访问。让数据库事务满足隔离性的要求。 InnoDB 中锁的作用 不仅用于对数据进行并发访问,还还包括了缓冲池中给LRU列表的操作。从而提供了数据的完整一致性。 latch与lock的区别? latch是轻量
阅读全文
摘要:索引概述 索引太多可能会降低运行性能,太少就会影响查询性能。 最开始就要在需要的地方添加索引。 常见的索引: B+树索引全文索引哈希索引 B+树索引 B+树 所有的叶子节点存放完整的数据,非叶子节点就是索引节点,只存放索引信息。 1. 插入操作 插入操作需要考虑节点是否被占满了,如果满了,久需要生成
阅读全文
摘要:表是什么? 就是关于特定实体地数据集合,是关系型数据库模型地核心。 索引组织表 什么是索引组织表? 表中数据都是根据主键的顺序组织存放的,这种存储方式就是索引组织表。就是存储在一个索引结构中的表。 也就是B+树的结构。 每张表都需要一个主键,如果没有定义,引擎就会去产生主键信息: 表中存在非空唯一索
阅读全文
摘要:构成MySQL数据库和InnoDB存储引擎表的文件类型有: 参数文件:MySQL实例运行时需要的参数就是存储在这里。日志文件:用来记录MySQL实例对某种条件做出响应时写入的文件。socket文件:用于套接字连接。pid文件,MySQL实例的进程ID文件。MySQL表结构文件:用来存放MySQL表结
阅读全文
摘要:1.概述 是一个高性能、高可用、高扩展的存储引擎。 2.InnoDB体系架构 InnoDB存储引擎主要由内存池和后台线程构成。 其中,内存池由许多个内存块组成,作用如下: 维护所有进程和线程需要访问的内部数据结构。缓存磁盘上的数据,提高处理器读取速度,当数据被修改的时候也是先修改这里的数据,再被后台
阅读全文
摘要:1.数据库和实例 数据库(database)和实例(instance)不能混淆。 什么是数据库 数据库是物理操作系统文件或其他文件类型的集合。说白了,就是存储着的文件,不会运行起来,只能被实例增删改查,用户不能脱离实例,直接操作。 什么是实例 实例是MySQL数据库由后台线程以及一个共享内存区组成。
阅读全文

浙公网安备 33010602011771号