在线视频: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入门到高级-宋红康版
代码仓库Gitee:https://gitee.com/an_shiguang/learn-mysql
事务是数据库区别于文件系统的重要特性之一,当我们有了事务就会让数据库始终保持一致性,同时我们还能通过事务的机制恢复到某个时间点,这样可以保证已提交到数据库的修改不会因为系统崩溃而丢失。
存储引擎支持情况SHOW ENGINES 命令来查看当前 MySQL 支持的存储引擎都有哪些,以及这些存储引擎是否支持事务。
基本概念事务:一组逻辑操作单元,使数据从一种状态变换到另一种状态。(一组不可分隔的操作)
事务处理的原则:保证所有事务都作为 一个工作单元 来执行,即使出现了故障,都不能改变这种执行方 式。当在一个事务中执行多个操作时,要么所有的事务都被提交( commit ),那么这些修改就 永久 地保 存下来;要么数据库管理系统将 放弃 所作的所有 修改 ,整个事务回滚( rollback )到最初状态。
1234# 案例:AA用户给BB用户转账100u ...
在线视频:MySQL数据库入门到大牛,mysql安装到优化,百科全书级,全网天花板官方资料: 尚硅谷MySQL入门到高级-宋红康版
代码仓库Gitee:https://gitee.com/an_shiguang/learn-mysql
都有哪些维度可以进行数据库调优?简言之:
索引失效、没有充分利用到索引——建立索引
关联查询太多JOIN(设计缺陷或不得已的需求)——SQL优化
服务器调优及各个参数设置(缓冲、线程数等)——调整my.cnf
数据过多——分库分表
关于数据库调优的知识非常分散。不同的DBMS,不同的公司,不同的职位,不同的项目遇到的问题都不尽相同。这里我们分为三个章节进行细致讲解。
虽然SQL查询优化的技术有很多,但是大方向上完全可以分成物理查询优化和逻辑查询优化两大块。
物理查询优化是通过索引和表连接方式等技术来进行优化,这里重点需要掌握索引的使用。
逻辑查询优化就是通过SQL等价变换提升查询效率,直白一点就是说,换一种查询写法效率可能更高。
数据准备学员表 插 50万 条, 班级表 插 1万 条。
12CREATE DATABASE atguigudb2 ...
在线视频:MySQL数据库入门到大牛,mysql安装到优化,百科全书级,全网天花板官方资料: 尚硅谷MySQL入门到高级-宋红康版
代码仓库Gitee:https://gitee.com/an_shiguang/learn-mysql
在数据库调优中,我们的目标是 响应时间更快, 吞吐量更大 。利用宏观的监控工具和微观的日志分析可以帮我们快速找到调优的思路和方式。
数据库服务器的优化步骤当我们遇到数据库调优问题的时候,该如何思考呢?这里把思考的流程整理成下面这张图。
整个流程划分成了 观察(Show status) 和 行动(Action) 两个部分。字母 S 的部分代表观察(会使 用相应的分析工具),字母 A 代表的部分是行动(对应分析可以采取的行动)。
我们可以通过观察了解数据库整体的运行状态,通过性能分析工具可以让我们了解执行慢的SQL都有哪些,查看具体的SQL执行计划,甚至是SQL执行中的每一步的成本代价,这样才能定位问题所在,找到了问题,再采取相应的行动。
详细解释一下这张图:
首先在S1部分,我们需要观察服务器的状态是否存在周期性的波动。如果存在周期性波动,有可能是 ...
在线视频:MySQL数据库入门到大牛,mysql安装到优化,百科全书级,全网天花板官方资料: 尚硅谷MySQL入门到高级-宋红康版
代码仓库Gitee:https://gitee.com/an_shiguang/learn-mysql
索引的声明与使用索引的分类MySQL的索引包括普通索引、唯一索引、全文索引、单列索引、多列索引和空间索引等。
从功能逻辑上说,索引主要有4种,分别是普通索引、唯一索引、主键索引、全文索引。
按照物理实现方式,索引可以分为2种:聚簇索引和非聚簇索引。
按照作用字段个数进行划分,分成单列索引和联合索引。
普通索引在创建普通索引时,不附加任何限制条件,只是用于提高查询效率。这类索引可以创建在任何数据类型中,其值是否唯一和非空,要由字段本身的完整性约束条件决定。建立索以后,可以通过索引进行查询。例如,在表student的字段name上建立一个普通索引,查询记录时就可以根据该索进行查询。
唯一性索引使用UNIQUE参数可以设置索引为唯一性索引,在创建唯一性索引时,限制该索引的值必须是唯一的,但允许有空值。在一张数据表里可以有多个唯一索引。
例如,在表stu ...
984bd7d0fda1d4283309ed094b1d09bdb4aaa07101ec48a82e924744057e65ca9e9543db7d34981607828939c1f220a2a273cb65ed907c7b43d217f1d164cc099c65bd6d8d8d87bff162189489a71558a1ac2bbe94d71318f66bbfc75337f1c39738f0a07696398c906e8739c6238c2e48f17e22b9449643bf5b7645700a2f5db64e28927212400671baff0e0fafd8a728f6536f2b720805f41a0fa7f47091d79983ceeddbdd853d79d8f29dc9a23154148bd31b56fe7d555ca9b53ddc890df94b2fc8fa9ec15d1354174bcde5433c35d71b7b167bf5355c42e27e68a33fc7bf22b264d833481dfc93d5a0a823b17edd0ecfc8ce52dc54e62 ...
在线视频:MySQL数据库入门到大牛,mysql安装到优化,百科全书级,全网天花板官方资料: 尚硅谷MySQL入门到高级-宋红康版
代码仓库Gitee:https://gitee.com/an_shiguang/learn-mysql
数据库的存储结构:页索引结构给我们提供了高效的索引方式,不过索引信息以及数据记录都是保存在文件上的,确切说是存储在页结构中。另一方面,索引是在存储引擎中实现的,MySQL服务器上的存储引擎负责对表中数据的读取和写入工作。不同存储引擎中存放的格式一般是不同的,甚至有的存储引擎比如Memory都不用磁盘来存储数据。
由于InnoDB是MySQL的默认存储引擎,所以本章剖析InnoDB存储引擎的数据存储结构。
磁盘与内存交互基本单位:页InnoDB将数据划分为若干个页,InnoDB中页的大小默认为16KB。
以页作为磁盘和内存之间交互的基本单位,也就是一次最少从磁盘中读取16KB的内容到内存中,一次最少把内存中的16KB内容刷新到磁盘中。也就是说,在数据库中,不论读一行,还是读多行,都是将这些行所在的页进行加载。也就是说,数据库管理存储空间的基本单位是页( ...
在线视频:MySQL数据库入门到大牛,mysql安装到优化,百科全书级,全网天花板官方资料: 尚硅谷MySQL入门到高级-宋红康版
代码仓库Gitee:https://gitee.com/an_shiguang/learn-mysql
为什么使用索引索引是存储引擎用于快速找到数据记录的一种数据结构,就好比一本教科书的目录部分,通过目录中找到对应文章的页码,便可快速定位到需要的文章。MySQL中也是一样的道理,进行数据查找时,首先查看查询条件是否命中某条索引,符合则通过索引查找相关数据,如果不符合则需要全表扫描,即需要一条一条地查找记录,直到找到与条件符合的记录。
如上图所示,数据库没有索引的情况下,数据分布在硬盘不同的位置上面,读取数据时,摆臂需要前后摆动查询数据,这样操作非常消耗时间。如果数据顺序摆放,那么也需要从1到6行按顺序读取,这样就相当于进行了6次IO操作,依旧非常耗时。如果我们不借助任何索引结构帮助我们快速定位数据的话,我们查找 Col 2 = 89 这条记录,就要逐行去查找、去比较。从Col 2 = 34 开始,进行比较,发现不是,继续下一行。我 ...
前言使用yum安装软件时始终无法找到镜像源,导致下载失败
12Error downloading packages: keepalived-1.3.5-19.el7.x86_64: [Errno 256] No more mirrors to try.
尝试更改镜像源,结果不生效而且恢复配置文件后仍提示如下错误
123456789101112131415161718192021222324252627282930313233Could not retrieve mirrorlist http://mirrorlist.centos.org/?release=7&arch=x86_64&repo=os&infra=stock error was14: curl#6 - "Could not resolve host: mirrorlist.centos.org; 未知的错误" One of the configured repositories failed (未知), and yum doesn't have enough ca ...
学习笔记
未读
在线视频:尚硅谷Nginx教程由浅入深(一套打通丨初学者也可掌握)
课堂资料:尚硅谷Nginx教程
代码仓库
Gitee: https://gitee.com/an_shiguang/learn-nginx
GitHub: https://github.com/Shiguang-coding/learn-nginx
Nginx介绍Nginx概述Nginx(“engine x”)是一个高性能的HTTP和反向代理服务器,特点是占有内存少,并发能力强,事实上nginx的并发能力确实在同类型的网页服务器中表现较好,中国大陆使用nginx网站用户有:百度、京东、新浪、网易、腾讯、淘宝等。
Nginx作为web服务器
https://lnmp.org/nginx.html
Nginx可以作为静态页面的web服务器,同时还支持CGI协议的动态语言,比如perl、php等。但是不支持java。Java程序只能通过与tomcat配合完成。Nginx专为性能优化而开发,性能是其最重要的考量,实现上非常注重效率,能经受高负载的考验,有报告表明能支持高达50,000个并发连接数。
正向代理
在客户端(浏 ...