分库分表

1. 为什么需要分库分表 不管是 IO 瓶颈,还是 CPU 瓶颈,最终都会导致数据库的活跃连接数增加,进而逼近甚至达到数据库可承载活跃连接数的阈值。在业务 Service 来看就是,可用数据库连接少甚至无连接可用。接下来就可以想象了吧(并发量、吞吐量、崩溃)。 1.1 IO 瓶颈 磁盘读 IO 瓶颈

Mysql 

数据一致性问题

参考文档: 缓存和数据库到底先写哪个? 1. 引出问题 在数据库和缓存一致性问题上,有以下几个操作 先删缓存,再更新数据库 先更新数据库,再更新缓存 先更新数据库,再删缓存 第一种方式 这个是逻辑是错误的。试想,两个并发操作,一个是更新操作,另一个是查询操作,更新操作删除缓存后,查询操作没有命中缓存

binlog 和 redo log

参考文档:Sharding-Jdbc实现读写分离、分库分表,妙! 1. binlog binlog(归档日志) MySQL 整体来看就有两块:一块是 Server 层,主要做的是 MySQL 功能层面的事情;还有一块是引擎层,负责存储相关的具体事宜。redo log 是 InnoDB 引擎特有的日志

Mysql 

mysql explain

参考文献:MySQL Explain详解 1. 介绍 explain 可以查看 sql 语句的执行计划,有没有用到索引。 -- 实际SQL,查找用户名为Jefabc的员工 select * from emp where name = 'Jefabc'; -- 查看SQL是否使用索引,前面加上expl

Mysql 

mysql 索引

参考文献: MySQL索引原理以及查询优化 mysql - 降序索引 mysql覆盖索引与回表 1. 介绍 1.1 什么是索引? 一般的应用系统,读写比例在10:1左右,而且插入操作和一般的更新操作很少出现性能问题,在生产环境中,我们遇到最多的,也是最容易出问题的,还是一些复杂的查询操作,因此对查询

Mysql 

mysql 读写分离

参考文档: 【mysql 读写分离】10分钟了解读写分离的作用 你还在代码里做读写分离么,试试这个中间件吧! 1. 介绍 什么是读写分离 读写分离,基本的原理是让主数据库处理事务性增、改、删操作(INSERT、UPDATE、DELETE),而从数据库处理SELECT查询操作。数据库复制被用来把事务性

Mysql 

mysql 主从复制

参考文献:MySql主从复制,从原理到实践! 1. 什么是主从复制 主从复制是指将主数据库的 DDL 和 DML 操作通过二进制日志传到从数据库上,然后在从数据库上对这些日志进行重新执行,从而使从数据库和主数据库的数据保持一致。

Mysql 

MySQL学习笔记

1. MySQL 基础 数据库:用于存储和管理数据的仓库。 数据库的特点: 持久化存储数据,就是一个文件系统。 方便存储和管理数据。 使用了统一的方式操作数据库 -- SQL。 登录 MySQL 的命令: mysql [-hIP地址] -u账号 -p密码 或 mysql --host=ip --us

Mysql