摘要:
1: 分布式事务简介 大多数场景下,我们的应用都只需要操作单一的数据库,这种情况下的事务称之为本地事务(LocalTransaction)。本地事务的ACID特性是数据库直接提供支持。本地事务应用架构如下所示: 但是在微服务架构中,完成某一个业务功能可能需要横跨多个服务,操作多个数据库。这就涉及到到 阅读全文
摘要:
数据库其它调优策略 1. 数据库调优的措施 1.1 调优的目标 尽可能 节省系统资源 ,以便系统可以提供更大负荷的服务。(吞吐量更大) 合理的结构设计和参数调整,以提高用户操作 响应的速度 。(响应速度更快) 减少系统的瓶颈,提高MySQL数据库整体的性能。 1.2 如何定位调优问题 不过随着用户量 阅读全文
摘要:
数据库的设计规范 1. 为什么需要数据库设计 我们在设计数据表的时候,要考虑很多问题。比如: 用户都需要什么数据?需要在数据表中保存哪些数据? 如何保证数据表中数据的正确性,当插入、删除、更新的时候该进行怎样的约束检查? 如何降低数据表的数据冗余度,保证数据表不会因为用户量的增长而迅速扩张? 如何让 阅读全文
摘要:
数据库备份与恢复 在任何数据库环境中,总会有不确定的意外情况发生,比如例外的停电、计算机系统中的各种软硬件故障、人为破坏、管理员误操作等是不可避免的,这些情况可能会导致数据的丢失、服务 器瘫痪等严重的后果。存在多个服务器时,会出现主从服务器之间的数据同步问题。 为了有效防止数据丢失,并将损失降到最低 阅读全文
摘要:
主从复制 1. 主从复制概述 1.1 如何提升数据库并发能力 在实际工作中,我们常常将Redis作为缓存与MySQL 配合来使用,当有请求的时候,首先会从缓存中进行查找,如果存在就直接取出。如果不存在再访问数据库,这样就提升了读取的效率,也减少了对后端数据库的访问压力。Redis 的缓存架构是高并发 阅读全文
摘要:
其他数据库日志 我们在讲解数据库事务时,讲过两种日志: 重做日志 回滚日志。 对于线上数据库应用系统,突然遭遇数据库宕机怎么办?在这种情况下,定位宕机的原因就非常关键。我们可以查看数据库的错误日志。因为日志中记录了数据库运行中的诊断信息,包括了错误、警告和注释等信息。比如:从日志中发现某个连接中的S 阅读全文
摘要:
多版本并发控制 1. 什么是MVCC MVCC (Multiversion Concurrency Control),多版本并发控制。顾名思义,MVCC 是通过数据行的多个版本管理来实现数据库的 并发控制 。这项技术使得在InnoDB的事务隔离级别下执行 一致性读 操作有了保证。换言之,就是为了查询 阅读全文
摘要:
Mysql 锁机制 事务的 隔离性 由这章讲述的 锁 来实现。 1. 概述 锁是计算机协调多个进程或线程并发访问某一资源的机制。在程序开发中会存在多线程同步的问题,当多个线程并发访问某个数据的时候,尤其是针对一些敏感的数据(比如订单、金额等) , 我们就需要保证这个数据在任何时刻最多只有一个线程在访 阅读全文
摘要:
MySql 事务日志 事务有4种特性:原子性、一致性、隔离性和持久性。那么事务的四种特性到底是基于什么机制实现呢? 事务的隔离性由 锁机制 实现。 而事务的原子性、一致性和持久性由事务的 redo 日志和undo 日志来保证。 REDO LOG 称为 重做日志 ,提供再写入操作,恢复提交事务修改的页 阅读全文
摘要:
事务基础知识 1. 数据库事务概述 事务是数据库区别于文件系统的重要特性之一,当我们有了事务就会让数据库始终保持一致性 ,同时我们还能通过事务的机制恢复到某个时间点,这样可以保证已提交到数据库的修改不会因为系统崩溃而丢失。 1.1 存储引擎支持情况 SHOW ENGINES 命令来查看当前 MySQ 阅读全文