随笔分类 -  数据库(sql 与mysql 和mongodb还有 redis)

关于一些数据库的从新书写。
摘要:前言 简单介绍一下副本集的原理篇。 正文 下面是几个基本的原理: 副本之间是如何复制的? mongodb 实现此功能的方式是保存操作日志,其中包含了主节点执行的每一次操作,这和mysql比较像。 oplog 是存在于主节点local数据库中的一个固定集合。从节点通过查询此集合以获取需要复制的操作。 阅读全文
posted @ 2022-10-17 00:04 敖毛毛 阅读(203) 评论(0) 推荐(0)
摘要:前言 副本集整理。 开始逐步把mongodb博客补齐了。 正文 什么是副本集 副本集是一组服务器,其中一个是用于处理写入操作的主节点,还有多个用于保存主节点的数据副本的从节点。 如果主节点崩溃了,则从节点会从其中选取出一个新的主节点。 作用 起到一个热备份 和 容灾的作用,如果出现不可预料的事故,比 阅读全文
posted @ 2022-10-16 13:03 敖毛毛 阅读(467) 评论(0) 推荐(0)
摘要:前言 简单整理一下mongodb的设计。 正文 设计三步曲: 第一步:建立基础文档模型 例子: 1对1建模: 1 对多建模: N对N模型: 第二步: 根据读写况细化 遇到的问题: 解决: 查询连表: 遇到的问题: 什么时候使用引用类型: 引用设置限制: 模式套用: 例子: 遇到的问题: 存储问题: 阅读全文
posted @ 2022-01-10 09:41 敖毛毛 阅读(197) 评论(0) 推荐(0)
摘要:前言 简单介绍一些索引。 正文 索引的术语: index 索引 key 键 DataPage 数据页 covered Query: ixscan/collscan: big O Natation: query shape: index prefix: selectivity: b树结构: 索引执行计 阅读全文
posted @ 2022-01-10 09:37 敖毛毛 阅读(106) 评论(0) 推荐(0)
摘要:前言 简单整理一下聚合操作。 正文 什么是聚合框架: 作用于一个或多个集合上 对集合的数据进行的一系列运算 将这些数据转换为期望的形式 从效果而言, 聚合框架相当于SQL 查询中的: Group By Left outer join as 等 整个聚合运算过程称为管道(pipeline), 它是由多 阅读全文
posted @ 2022-01-09 22:06 敖毛毛 阅读(191) 评论(0) 推荐(0)
摘要:前言 简单整理一下常规操作。 正文 虽然一般说写代码看的是思想,但是呢,如果不知道mongodb 有哪些常用的操作,那么你怎么能知道mongodb是否符合你的需求,比如说如果聚合功能都没有,你得自己写聚合,那么这个工作量还是蛮大的,也不符合软件开发。 插入一条数据:db.fruit.insertOn 阅读全文
posted @ 2022-01-09 12:14 敖毛毛 阅读(227) 评论(0) 推荐(0)
摘要:前言 简单介绍一下文档数据库。 正文 mongodb 是一个以json为数据模型的文档数据库。 这里要介绍一下什么是json。因为有些人认为'{a:1,b:2}' 是json,而"this is a" 不是json。 然证明这的确是一个json。事实证明数组也是。 所以不能把json想的过于狭义。 阅读全文
posted @ 2022-01-09 01:23 敖毛毛 阅读(464) 评论(0) 推荐(0)
摘要:前言 简单介绍一下数据库的维护。 正文 像所有数据一样,MySQL的数据也必须经常备份。 由于MySQL数据库是基于磁盘的文件,普通的备份系统和例程就能备份MySQL的数据。 但是,由于这些文件总是处于打开和使用状态,普通的文件副本备份不一定总是有效. 下面列出这个问题的可能解决方案。 1.使用命令 阅读全文
posted @ 2021-10-14 10:52 敖毛毛 阅读(224) 评论(0) 推荐(0)
摘要:前言 简单介绍一下字符集。 数据库表被用来存储和检索数据。不同的语言和字符集需要以不同的方式存储和检索。 因此,MySQL需要适应不同的字符集(不同的字母和字符),适应不同的排序和检索数据的方法。 字符集为字母和符号的集合; 编码为某个字符集成员的内部表示; 校对为规定字符如何比较的指令。 校对为什 阅读全文
posted @ 2021-10-13 18:04 敖毛毛 阅读(75) 评论(0) 推荐(0)
摘要:前言 简单介绍一下安全管理。 正文 MySQL服务器的安全基础是:用户应该对他们需要的数据具有适当的访问权,既不能多也不能少。 换句话说,用户不能对过多的数据具有过多的访问权。 多数用户只需要对表进行读和写,但少数用户甚至需要能创建和删除表; 某些用户需要读表,但可能不需要更新表; 你可能想允许用户 阅读全文
posted @ 2021-10-13 15:20 敖毛毛 阅读(98) 评论(0) 推荐(0)
摘要:前言 简单整理一下事务。 正文 并非所有引擎都支持事务处理 正如第21章所述,MySQL支持几种基本的数据库引擎。 正如本章所述,并非所有引擎都支持明确的事务处理管理。 MyISAM和InnoDB是两种最常使用的引擎。 前者不支持明确的事务处理管理,而后者支持。这就是为什么本书中使用的样例表被创建来 阅读全文
posted @ 2021-10-12 15:48 敖毛毛 阅读(104) 评论(0) 推荐(0)
摘要:前言 现在很多都是程序用于触发的,而不是触发器了。 正文 需要MySQL 5 对触发器的支持是在MySQL 5中增加的。因此,本章内容适用于MySQL 5或之后的版本。 MySQL语句在需要时被执行,存储过程也是如此。但是,如果你想要某条语句(或某些语句)在事件发生时自动执行,怎么办呢?例如: 每当 阅读全文
posted @ 2021-10-11 16:50 敖毛毛 阅读(273) 评论(0) 推荐(0)
摘要:前言 简单介绍一下游标。 正文 需要MySQL 5 MySQL 5添加了对游标的支持,因此,本章内容适用于MySQL 5及以后的版本。 有时,需要在检索出来的行中前进或后退一行或多行。这就是使用游标的原因。 游标(cursor)是一个存储在MySQL服务器上的数据库查询,它不是一条SELECT语句, 阅读全文
posted @ 2021-10-09 12:07 敖毛毛 阅读(99) 评论(0) 推荐(0)
摘要:前言 简单整理一下存储过程。 正文 需要MySQL 5 MySQL 5添加了对存储过程的支持,因此,本章内容适用于MySQL 5及以后的版本。 迄今为止,使用的大多数SQL语句都是针对一个或多个表的单条语句。 并非所有操作都这么简单,经常会有一个完整的操作需要多条语句才能完成。 例如,考虑以下的情形 阅读全文
posted @ 2021-10-09 10:46 敖毛毛 阅读(96) 评论(0) 推荐(0)
摘要:前言 简单整理一下视图。 正文 视图: 需要MySQL 5 MySQL 5添加了对视图的支持。因此,本章内容适用于MySQL 5及以后的版本。 视图是虚拟的表。与包含数据的表不一样,视图只包含使用时动态检索数据的查询。 视图是虚拟的表。与包含数据的表不一样,视图只包含使用时动态检索数据的查询。 此查 阅读全文
posted @ 2021-10-08 14:28 敖毛毛 阅读(134) 评论(0) 推荐(0)
摘要:前言 简单整理一下表和视图。 正文 MySQL不仅用于表数据操纵,而且还可以用来执行数据库和表的所有操作,包括表本身的创建和处理。 一般有两种创建表的方法: 使用具有交互式创建和管理表的工具 表也可以直接用MySQL语句操纵 为了用程序创建表,可使用SQL的CREATE TABLE语句。值得注意的是 阅读全文
posted @ 2021-10-08 12:56 敖毛毛 阅读(213) 评论(0) 推荐(0)
摘要:前言 简单整理数据插入更新还有删除。 正文 插入: INSERT INTO customers( customers.cust_address, customers.cust_city, customers.cust_state, customers.cust_zip, customers.cust 阅读全文
posted @ 2021-10-02 07:42 敖毛毛 阅读(96) 评论(0) 推荐(0)
摘要:前言 简单整理一下组合查询与全文搜索。 正文 什么是组合查询,就是我们常说的交并补集。 直接上例子。 举一个例子,假如需要价格小于等于5的所有物品的一个列表,而且还想包括供应商1001和1002生产的所有物品(不考虑价格)。 当然,可以利用WHERE子句来完成此工作。 select vend_id, 阅读全文
posted @ 2021-09-30 19:14 敖毛毛 阅读(85) 评论(0) 推荐(0)
摘要:前言 简单介绍一下子查询与连接表。 正文 什么是子查询呢? 列出订购物品TNT2的所有客户。 select cust_id from orders where order_num IN (SELECT order_num from orderitems where prod_id = 'TNT2' 阅读全文
posted @ 2021-09-26 19:57 敖毛毛 阅读(145) 评论(0) 推荐(0)
摘要:前言 简单整理一下数据汇总与分组 正文 我们经常需要汇总数据而不用把它们实际检索出来,为此MySQL提供了专门的函数。使用这些函数,MySQL查询可用于检索数据,以便分析和报表生成。 这种类型的检索例子有以下几种。 确定表中行数(或者满足某个条件或包含某个特定值的行数)。 获得表中行组的和。 找出表 阅读全文
posted @ 2021-09-26 10:19 敖毛毛 阅读(173) 评论(0) 推荐(0)