一:概述 - LRU 用于管理缓存策略,其本身在 Linux/Redis/Mysql 中均有实现。只是实现方式不尽相同。 - LRU 算法【Least recently used(最近最少使用)】 - 根据数据的历史访问记录来进行淘汰数据,其核心思想是 "如果数据最近被访问过,那么将来被访问的几率也 Read More
一:自增主键是连续的么? - 自增主键不能保证连续递增。 二:自增值保存在哪里? - 当使用 show create table `table_name`;时,会看到 自增值,也就是 AUTO_INCREMENT。 CREATE TABLE `t` ( .... ) ENGINE=InnoDB AU Read More
一:Join 的问题? - 在实际生产中,使用 join 一般会集中在以下两类: - DBA 不让使用 Join ,使用 Join 会有什么问题呢? - 如果有两个大小不同的表做 join,应该用哪个表做驱动表呢? 二:数据准备 CREATE TABLE `t2` ( `id` int(11) NO Read More
一:误删数据 (如何恢复和避免误删除) - 使用 delete 语句误删数据行; - 使用 drop table 或者 truncate table 语句误删数据表; - 使用 drop database 语句误删数据库; - 使用 rm 命令误删整个 MySQL 实例。 二:误删行 - 方法<!- Read More
一:读写分离 - 概念 - <!--?xml version="1.0" encoding="UTF-8"?--> 读写分离的主要目标就是分摊主库的压力。 - 基本架构 - - 二:两种读写分离的架构特点 - 客户端直连方案 - 因为少了一层 proxy 转发,所以查询性能稍微好一点儿,并且整体架构 Read More
一:为什么要进行主备切换? - 比如软件升级、主库所在机器按计划下线等。主动运维。 - 比如主库所在机器掉电,为了保证服务的正常运行,而进行切换。可能是被动操作。 - 流程图 - 二:什么是同步延迟? - 在介绍主动切换流程的详细步骤之前,先跟你说明一个概念,既“同步延迟” - 与数据同步有关的时间 Read More
一:Mysql 主备的基本原理? - 主备切换流程(M-S 架构) - - 在状态 1 中,客户端的读写都直接访问节点 A,而节点 B 是 A 的备库,只是将 A 的更新都同步过来,到本地执行。 - 这样可以保持节点 B 和 A 的数据是相同的。 - 当需要切换的时候,就切成状态 2。这时候客户端读 Read More
一:情景 - 业务高峰期,生产环境的 MySQL 压力太大,没法正常响应,需要短期内、临时性地提升一些性能。 - 在业务高发时候,Mysql 服务压力过大,导致业务受损,<!--?xml version="1.0" encoding="UTF-8"?--> 用户的开发负责人说,不管你用什么方案,让业 Read More
一:准备 - 为了深入了解幻读,准备数据。 CREATE TABLE `t` ( `id` int(11) NOT NULL, `c` int(11) DEFAULT NULL, `d` int(11) DEFAULT NULL, PRIMARY KEY (`id`), KEY `c` (`c`) Read More
概念 - 在某些情况下,“查一行”,也会执行得特别慢。 - 下面分析在什么情况下,会出现这个现象。 - 基础工作(构建数据库环境) - 建立 t 表,并写入 10W 的数据。 CREATE TABLE `t` ( `id` int(11) NOT NULL, `c` int(11) DEFAULT Read More