IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 大数据 -> 国庆期间复习了下Mysql和redis,ES -> 正文阅读

[大数据]国庆期间复习了下Mysql和redis,ES

国庆期间复习了下Mysql和redis,ES包括:

Mysql索引面试题目分析

Mysql的日志

Mysql慢查询

Mysql表锁:共享读锁,独占写锁

? ? ??

结论:读锁会阻塞写,但是不会堵塞读。而写锁则会把读和写都堵塞。

表锁-读锁:

加读锁 lock table user read;

解锁 lock tables;

session1session2
修改session1锁住的表失败阻塞
读session1锁住的表成功成功
修改session1没锁的表失败成功
读session1没锁的表失败成功
表锁-写锁:

加写锁 lock table user write;

解锁 lock tables;

session1session2
修改session1锁住的表成功阻塞
读session1锁住的表成功阻塞
修改session1没锁的表失败成功
读session1没锁的表失败成功

?查看哪些表被锁住了:

Mysql行级锁

?如何锁定一行:

Mysql主从复制:

都是一些配置的问题

基本原理:

复制的基本原则:

每个slave只有一个master
每个slave只能有一个唯一的服务器ID
每个master可以有多个salve

Mysql的Explain的用法

使用EXPLAIN关键字可以模拟优化器执行SQL查询语句,从而知道MySQL是如何处理你的SQL语句的。分析你的查询语句或是表结构的性能瓶颈
?? ???

Mysql的执行流程

Mysql的三大范式:

?? ??? ?1NF 原子性:表中每列不可再拆分。?
?? ??? ?2NF 不产生局部依赖,一张表只描述一件事情 // 第二范式就是在第一范式的基础上所有列完全依赖于主键列。
?? ??? ?3NF 不产生传递依赖,表中每一列都直接依赖于主键。而不是通过其它列间接依赖于主键。//简而言之,第三范式就是所有列不依赖于其它非主键列,也就是在满足2NF的基础上,任何非主列不得传递依赖于主键。所谓传递依赖,指的是如果存在"A → B → C"的决定关系,则C传递依赖于A。因此,满足第三范式的数据库表应该不存在如下依赖关系:主键列 → 非主键列x → 非主键列y // 存在传递的决定关系: 学号->所在学院 -> 学院地点?

redis的用途,以及与mysql的对比

在分布式数据库中CAP原理CAP+BASE:

C:Consistency(强一致性)

A:Availability(可用性)

P:Partion tolerance(分区容错性)

CAP的理论就是说在分布式存储系统中,最多只能实现上面的两点。

而由于当前的网络硬件肯定会出现延迟丢包等问题,所以分区容忍性是我们必须要实现的。

所以我们只能在一致性和可用性之间进行权衡,没有NoSQL系统能同时保证这一点。

C:强一致性 A:高可用性 P:分布式容错性

CA 传统Oracle数据库

AP大多数网站架构的选择

CP Redis、Mongodb

?悲观锁:

顾名思义,每次去拿数据的时候都被认为别人会修改,所以每次在拿数据的时候都会被锁上,这样别人想拿这个数据就会block直到它拿到锁,传统的关系型数据库里边就用到了很多这种锁机制,比如行锁、表锁等,读锁、写锁等,都是在做操作之前先锁上。

乐观锁:

每次去拿数据的时候都认为别人不会修改,所以不会上锁,但是在更新的时候会判断一下在此期间别人有没有去更新这个数据,可以使用版本号等机制。乐观锁适用于多度的应用类型,这样可以提高吞吐量。

乐观锁策略:提交版本必须大于记录当前版本才能执行更新。

?CAS:

redis事务

DISCARD:取消事务,放弃执行事务块内的所有命令。

EXEC:执行所有事务块的命令。

MULTI:标记一个事务块的开始。

UNWATCH:取消WATCH命令对多有key的监视。

WATCH key [key......]:监视一个(或多个)key,如果在事务执行之前这个key被其他命令所改动,那么事务将打断。

Case1:正常放行

Case2:放弃事务

Case3:全体连坐

Case4:冤头债主

Case5:watch监控

  大数据 最新文章
实现Kafka至少消费一次
亚马逊云科技:还在苦于ETL?Zero ETL的时代
初探MapReduce
【SpringBoot框架篇】32.基于注解+redis实现
Elasticsearch:如何减少 Elasticsearch 集
Go redis操作
Redis面试题
专题五 Redis高并发场景
基于GBase8s和Calcite的多数据源查询
Redis——底层数据结构原理
上一篇文章      下一篇文章      查看所有文章
加:2021-10-08 11:51:37  更:2021-10-08 11:54:04 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/24 1:28:49-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码