第02讲:深入理解事务与锁机制(上)
你好,欢迎来到第 2 课时,本课时讲解的主要内容是:“MySQL 事务与锁机制”。
事务及其特性
首先看看什么是事务?事务具有哪些特性?关于事务,上大学的时候,你应该有接触过相关的课程。简单来说,事务是指作为单个逻辑工作单元执行的一系列操作,这些操作要么全做,要么全不做,是一个不可分割的工作单元。
你好,欢迎来到第 2 课时,本课时讲解的主要内容是:“MySQL 事务与锁机制”。
事务及其特性
首先看看什么是事务?事务具有哪些特性?关于事务,上大学的时候,你应该有接触过相关的课程。简单来说,事务是指作为单个逻辑工作单元执行的一系列操作,这些操作要么全做,要么全不做,是一个不可分割的工作单元。
MySQL 锁分类
前文提到了锁,下面将详细讲解 MySQL 的锁,我们先来看看锁的分类,在 MySQL 中有三种级别的锁:页级锁、表级锁、行级锁。
表级锁:开销小,加锁快;不会出现死锁;锁定粒度大,发生锁冲突的概率最高,并发度最低。 会发生在:MyISAM、memory、InnoDB、BDB 等存储引擎中。
这一讲的内容我想通过一个例子来全面比较一下传统测试与敏捷测试的区别,这个例子来自一本书——《凤凰项目:一个 IT 运维的传奇故事》。这是由美国的三位 DevOps 专家撰写的一本关于 IT 运维的小说。有人说,在 IT 咨询业,没读过这本书都不好意思跟人家谈 DevOps。
本课时我们讲解关于 Nginx 配置优化的内容,相信对于 Nginx 你一定并不陌生,它是一款轻量级的开源 Web 服务及代理程序。在 Nginx 出现之前市场上主流两款 Web 服务,一款是 Windows 系统上的 IIS,另外一款是 Linux 系统上的 Apache。而在 Nginx 诞生后,因其轻量化、支持高并发等特性,逐渐蚕食了这两款 Web 服务的市场份额。目前国内大量企业早已广泛的使用 Nginx。既然 Nginx 使用这么广泛,那么我们在运维工作中如何对其进行优化和配置便成了重中之重。
如果你作为网站类的技术工程师,并且把 Nginx 作为代理入口的 HTTP 网关,这时对于网站优化有效的方式除了需要考虑基础配置优化外,更有用的方式就是优化缓存,这一课时我们就详细讲解缓存配置优化的具体内容。
这一课时我们将一起探究 DOM 事件。
DOM 事件数量非常多,即使分类也有十多种,比如键盘事件、鼠标事件、表单事件等,而且不同事件对象属性也有差异,这带来了一定的学习难度。
本课时讲解的主要内容是:“高性能库表设计”。
范式与反范式
优秀的库表设计是高性能数据库的基础。如何才能设计出高性能的库表结构呢?这里必须要提到数据库范式。范式是基础规范,反范式是针对性设计。
上一讲介绍了敏捷测试与传统测试之间的区别,从测试的独立性、阶段性、计划性、自动化测试等多个方面进行了对比,其实敏捷测试与传统测试之间最大的区别不在那里,而是在测试原则(第 1 讲已讨论)和测试思维方式(Test Mindset)上。
本课时我们主要讲解“如何透彻理解 Paxos 算法”?
Paxos 算法在分布式领域具有非常重要的地位,开源分布式锁组件 Google Chubby 的作者 Mike Burrows 说过,这个世界上只有一种一致性算法,那就是 Paxos 算法,其他的算法都是残次品。
在上一课时我们重点介绍了 Nginx 作为 HTTP 代理网关常见且基本的优化技巧。实际上 Nginx 除了承担代理网关角色外还会应用于 7 层应用上的负载均衡,本课时重点讲解 Nginx 的负载均衡应用架构,及最常见的问题。