【尚硅谷】RabbitMQ
在线视频:尚硅谷2024最新RabbitMQ教程,消息中间件RabbitMQ迅速上手!官方资料: 尚硅谷2024最新版RabbitMQ视频
代码Gitee:https://gitee.com/an_shiguang/learn-rabbitmqGitHub: https://github.com/Shiguang-coding/learn-rabbitmq
MQ的相关概念什么是MQMQ(message queue),从字面意思上看,本质是个队列,FIFO先入先出,只不过队列中存放的内容是message而已,还是一种跨进程的通信机制,用于上下游传递消息。在互联网架构中,MQ是一种非常常见的上下游“逻辑解耦+物理解耦”的消息通信服务。使用了MQ之后,消息发送上游只需要依赖MQ,不用依赖其他服务。
为什么要用MQ流量消峰举个例子,如果订单系统最多能处理一万次订单,这个处理能力应付正常时段的下单时绰绰有余,正常时段我们下单一秒后就能返回结果。但是在高峰期,如果有两万次下单操作系统是处理不了的,只能限制订单超过一万后不允许用户下单。使用消息队列做缓冲,我们可以取消这个限制,把一秒内下的订单分 ...
【尚硅谷】Kafka 3.x
在线视频:【尚硅谷】Kafka3.x教程(从入门到调优,深入全面)课程资料:尚硅谷大数据技术之Kafka3.x(2022版)
代码Gitee:https://gitee.com/an_shiguang/learn-kafkaGitHub: https://github.com/Shiguang-coding/learn-kafka
【尚硅谷】MySQL-数据库备份与恢复
在线视频:MySQL数据库入门到大牛,mysql安装到优化,百科全书级,全网天花板官方资料: 尚硅谷MySQL入门到高级-宋红康版
代码仓库Gitee:https://gitee.com/an_shiguang/learn-mysql
在任何数据库环境中,总会有不确定的意外情况发生,比如例外的停电、计算机系统中的各种软硬件故障、人为破坏、管理员误操作等是不可避免的,这些情况可能会导致数据的丢失、服务器瘫痪等严重的后果。存在多个服务器时,会出现主从服务器之间的数据同步问题。
为了有效防止数据丢失,并将损失降到最低,应定期对MySQL数据库服务器做备份。如果数据库中的数据丢失或者出现错误,可以使用备份的数据进行恢复。主从服务器之间的数据同步问题可以通过复制功能实现
物理备份与逻辑备份物理备份:备份数据文件,转储数据库物理文件到某一目录。物理备份恢复速度比较快,但占用空间比较大,MySQL中可以用 xtrabackup 工具来进行物理备份。
逻辑备份:对数据库对象利用工具进行导出工作,汇总入备份文件内。逻辑备份恢复速度慢,但占用空间小,更灵活。MySQL 中常用的逻辑备份工具为 mysq ...
【尚硅谷】MySQL-主从复制
在线视频:MySQL数据库入门到大牛,mysql安装到优化,百科全书级,全网天花板官方资料: 尚硅谷MySQL入门到高级-宋红康版
代码仓库Gitee:https://gitee.com/an_shiguang/learn-mysql
主从复制概述如何提升数据库并发能力在实际工作中,我们常常将Redis作为缓存与MySQL配合来使用,当有请求的时候,首先会从缓存中进行查找,如果存在就直接取出。如果不存在再访问数据库,这样就提升了读取的效率,也减少了对后端数据库的访问压力。Redis的缓存架构是高并发架构中非常重要的一环。
此外,一般应用对数据库而言都是“ 读多写少 ”,也就说对数据库读取数据的压力比较大,有一个思路就是采用数据库集群的方案,做 主从架构 、进行 读写分离 ,这样同样可以提升数据库的并发处理能力。但并不是所有的应用都需要对数据库进行主从架构的设置,毕竟设置架构本身是有成本的。
如果我们的目的在于提升数据库高并发访问的效率,那么首先考虑的是如何 优化SQL和索引 ,这种方式 简单有效;其次才是采用 缓存的策略 ,比如使用 Redis将热点数据保存在内存数据库中,提升读 ...
【尚硅谷】MySQL-其他数据库日志
在线视频:MySQL数据库入门到大牛,mysql安装到优化,百科全书级,全网天花板官方资料: 尚硅谷MySQL入门到高级-宋红康版
代码仓库Gitee:https://gitee.com/an_shiguang/learn-mysql
我们在讲解数据库事务时,讲过两种日志:重做日志、回滚日志。
对于线上数据库应用系统,突然遭遇数据库宕机怎么办?在这种情况下,定位宕机的原因就非常关键。我们可以查看数据库的错误日志。因为日志中记录了数据库运行中的诊断信息,包括了错误、警告和注释等信息。比如:从日志中发现某个连接中的SQL操作发生了死循环,导致内存不足,被系统强行终止了。明确了原因,处理起来也就轻松了,系统很快就恢复了运行。
除了发现错误,日志在数据复制、数据恢复、操作审计,以及确保数据的永久性和一致性等方面,都有着不可替代的作用。
千万不要小看日志。很多看似奇怪的问题,答案往往就藏在日志里。很多情况下,只有通过查看日志才 能发现问题的原因,真正解决问题。所以,一定要学会查看日志,养成检查日志的习惯,对提升你的数 据库应用开发能力至关重要。
MySQL8.0 官网日志地址:“ https ...
【尚硅谷】MySQL-多版本并发控制
在线视频:MySQL数据库入门到大牛,mysql安装到优化,百科全书级,全网天花板官方资料: 尚硅谷MySQL入门到高级-宋红康版
代码仓库Gitee:https://gitee.com/an_shiguang/learn-mysql
什么是MVCCMVCC (Multiversion Concurrency Control),多版本并发控制。顾名思义,MVCC 是通过数据行的多个版本管理来实现数据库的 并发控制 。这项技术使得在InnoDB的事务隔离级别下执行 一致性读 操作有了保证。换言之,就是为了查询一些正在被另一个事务更新的行,并且可以看到它们被更新之前的值,这样 在做查询的时候就不用等待另一个事务释放锁。
MVCC没有正式的标准,在不同的DBMS中MVCC的实现方式可能是不同的,也不是普遍使用的(大家可以参考相关的DBMS文档)。这里讲解InnoDB中MVCC的实现机制(MySQL其他的存储引擎并不支持它)。
快照读与当前读MVCC在MySQL InnoDB中的实现主要是为了提高数据库并发性能,用更好的方式去处理 读-写冲突 ,做到 即使有读写冲突时,也能做到 不加锁 , ...
【尚硅谷】MySQL-锁
在线视频:MySQL数据库入门到大牛,mysql安装到优化,百科全书级,全网天花板官方资料: 尚硅谷MySQL入门到高级-宋红康版
代码仓库Gitee:https://gitee.com/an_shiguang/learn-mysql
事务的隔离性由这章讲述的锁来实现。
概述锁是计算机协调多个进程或线程并发访问某一资源的机制。在程序开发中会存在多线程同步的问题,当多个线程并发访问某个数据的时候,尤其是针对一些敏感的数据(比如订单、金额等),我们就需要保证这个数据在任何时刻最多只有一个线程在访问,保证数据的完整性和一致性。在开发过程中加锁是为了保证数据的一致性,这个思想在数据库领域中同样很重要。
在数据库中,除传统的计算资源(如CPU、RAM、I/O等)的争用以外,数据也是一种供许多用户共享的资源。为保证数据的一致性,需要对 并发操作进行控制 ,因此产生了 锁 。同时 锁机制 也为实现MySQL的各个隔离级别提供了保证。 锁冲突 也是影响数据库 并发访问性能 的一个重要因素。所以锁对数据库而言显得尤其重要,也更加复杂。
MySQL并发事务访问相同记录并发事务访问相同记录 ...
【尚硅谷】MySQL-MySQL事务日志
在线视频:MySQL数据库入门到大牛,mysql安装到优化,百科全书级,全网天花板官方资料: 尚硅谷MySQL入门到高级-宋红康版
代码仓库Gitee:https://gitee.com/an_shiguang/learn-mysql
事务有4种特性:原子性、一致性、隔离性和持久性。那么事务的四种特性到底是基于什么机制实现呢?
事务的隔离性由 锁机制 实现。
而事务的原子性、一致性和持久性由事务的 redo 日志和undo 日志来保证。
REDO LOG 称为 重做日志 ,提供再写入操作,恢复提交事务修改的页操作,用来保证事务的持久性。
UNDO LOG 称为 回滚日志 ,回滚行记录到某个特定版本,用来保证事务的原子性、一致性。
有的DBA或许会认为 UNDO 是 REDO 的逆过程,其实不然。REDO 和 UNDO都可以视为是一种 恢复操作,但是:
redo log: 是存储引擎层 (innodb) 生成的日志,记录的是"物理级别"上的页修改操作,比如页号xxx,偏移量yyy写入了’zzz’数据。主要为了保证数据的可靠性。
undo log: 是存储 ...
【尚硅谷】MySQL-事务基础知识
在线视频:MySQL数据库入门到大牛,mysql安装到优化,百科全书级,全网天花板官方资料: 尚硅谷MySQL入门到高级-宋红康版
代码仓库Gitee:https://gitee.com/an_shiguang/learn-mysql
事务是数据库区别于文件系统的重要特性之一,当我们有了事务就会让数据库始终保持一致性,同时我们还能通过事务的机制恢复到某个时间点,这样可以保证已提交到数据库的修改不会因为系统崩溃而丢失。
存储引擎支持情况SHOW ENGINES 命令来查看当前 MySQL 支持的存储引擎都有哪些,以及这些存储引擎是否支持事务。
基本概念事务:一组逻辑操作单元,使数据从一种状态变换到另一种状态。(一组不可分隔的操作)
事务处理的原则:保证所有事务都作为 一个工作单元 来执行,即使出现了故障,都不能改变这种执行方 式。当在一个事务中执行多个操作时,要么所有的事务都被提交( commit ),那么这些修改就 永久 地保 存下来;要么数据库管理系统将 放弃 所作的所有 修改 ,整个事务回滚( rollback )到最初状态。
1234# 案例:AA用户给BB用户转账100u ...
【尚硅谷】MySQL-索引优化与查询优化
在线视频:MySQL数据库入门到大牛,mysql安装到优化,百科全书级,全网天花板官方资料: 尚硅谷MySQL入门到高级-宋红康版
代码仓库Gitee:https://gitee.com/an_shiguang/learn-mysql
都有哪些维度可以进行数据库调优?简言之:
索引失效、没有充分利用到索引——建立索引
关联查询太多JOIN(设计缺陷或不得已的需求)——SQL优化
服务器调优及各个参数设置(缓冲、线程数等)——调整my.cnf
数据过多——分库分表
关于数据库调优的知识非常分散。不同的DBMS,不同的公司,不同的职位,不同的项目遇到的问题都不尽相同。这里我们分为三个章节进行细致讲解。
虽然SQL查询优化的技术有很多,但是大方向上完全可以分成物理查询优化和逻辑查询优化两大块。
物理查询优化是通过索引和表连接方式等技术来进行优化,这里重点需要掌握索引的使用。
逻辑查询优化就是通过SQL等价变换提升查询效率,直白一点就是说,换一种查询写法效率可能更高。
数据准备学员表 插 50万 条, 班级表 插 1万 条。
12CREATE DATABASE atguigudb2 ...