随笔分类 -  MySQL

摘要:1. 扩容问题 B+树,一般就三层,上边两层是索引,最后一层是数据记录。 扇区:4k,一页:16k 假设一条数据记录: 1k => 一页可以放16条记录 上面两层,每一个 item 的结构是:[索引 6B, 主键 8B] 16k*1024 = 16384(B) 16384 / (6+8) = 117 阅读全文
posted @ 2023-12-10 21:11 tree6x7 阅读(57) 评论(0) 推荐(0) 编辑
摘要:1. SELECT 语句完整的执行顺序 FROM 子句组装来自不同数据源的数据 WHERE 子句基于指定的条件对记录行进行筛选 GROUP BY 子句将数据划分为多个分组 使用聚集函数进行计算 使用 HAVING 子句筛选分组 计算所有的表达式 SELECT 的字段 使用 ORDER BY 对结果集 阅读全文
posted @ 2021-05-19 08:26 tree6x7 阅读(102) 评论(0) 推荐(0) 编辑
摘要:1. 需求分析 在业务系统中,需要记录当前业务系统的访问日志,该访问日志包含:操作人,操作时间,访问类,访问方法,请求参数,请求结果,请求结果类型,请求时长 等信息。记录详细的系统访问日志,主要便于对系统中的用户请求进行追踪,并且在系统 的管理后台可以查看到用户的访问记录。 记录系统中的日志信息,可 阅读全文
posted @ 2020-11-13 11:41 tree6x7 阅读(124) 评论(0) 推荐(0) 编辑
摘要:1. 基本原理 MySQL 的主从复制就是基于二进制日志完成的。 复制是指将主数据库的 DDL 和 DML 操作通过 [二进制日志] 传到从库服务器中,然后在从库上对这些日志重新执行(也叫重做),从而使得从库和主库的数据保持同步。 MySQL 支持一台主库同时向多台从库进行复制, 从库同时也可以作为 阅读全文
posted @ 2020-11-13 11:38 tree6x7 阅读(126) 评论(0) 推荐(0) 编辑
摘要:1. 常用 SQL 技巧 1.1 SQL 执行顺序 1.2 正则表达式使用 正则表达式(Regular Expression)是指一个用来描述或者匹配一系列符合某个句法规则的字符串的单个字符串。 select * from emp where name regexp '^T'; select * f 阅读全文
posted @ 2020-11-12 12:19 tree6x7 阅读(161) 评论(0) 推荐(0) 编辑
摘要:1. 应用优化 前面章节,我们介绍了很多数据库的优化措施。但是在实际生产环境中,由于数据库本身的性能局限,就必须要对前台的应用进行一些优化,来降低数据库的访问压力。 1.1 使用连接池 对于访问数据库来说,建立连接的代价是比较昂贵的,因为我们频繁的创建关闭连接,是比较耗费资源的,我们有必要建立数据库 阅读全文
posted @ 2020-11-12 12:06 tree6x7 阅读(98) 评论(0) 推荐(0) 编辑
摘要:1. 避免索引失效 1.1 全值匹配 对索引中所有列都指定具体值。 很明显,当按照索引中所有列进行精确匹配(这里精确匹配指“=”或“IN”匹配)时,索引可以被用到。这里有一点需要注意,理论上索引对顺序是敏感的,但是由于 MySQL 的查询优化器会自动调整 WHERE 子句的条件顺序以使用适合的索引, 阅读全文
posted @ 2020-11-09 17:53 tree6x7 阅读(161) 评论(0) 推荐(0) 编辑
摘要:1. 导致性能下降的原因 查询语句写的烂 → SQL 优化 索引(单值、复合)失效 → 索引建立 关联查询太多 Join // 设计缺陷、不得已的需求 → SQL 优化 服务器调优及各个参数设置(缓冲、线程数等)→ 调整 my.cnf 数据过多 → 分库分表 2. JOIN 查询 3. 什么是索引? 阅读全文
posted @ 2020-11-09 17:37 tree6x7 阅读(147) 评论(0) 推荐(1) 编辑
摘要:在应用的的开发过程中,由于初期数据量小,开发人员写 SQL 语句时更重视功能上的实现,但是当应用系统正式上线后,随着生产数据量的急剧增长,很多 SQL 语句开始逐渐显露出性能问题,对生产的影响也越来越大,此时这些有问题的 SQL 语句就成为整个系统性能的瓶颈,因此我们必须要对它们进行优化,本章将详细 阅读全文
posted @ 2020-11-05 12:02 tree6x7 阅读(108) 评论(0) 推荐(0) 编辑
摘要:1. MySQL 逻辑架构 MySQL 与其他 DB 相比, 最与众不同的点在于:它的架构可以在多种不同场景中应用并发挥良好作用, 最主要体现在存储引擎的架构上。插件式的存储引擎架构将查询处理和其他的系统任务以及数据的存储提取相分离,这种架构可以根据业务的需求和实际需要选择合适的存储引擎。 整个 M 阅读全文
posted @ 2020-11-05 11:58 tree6x7 阅读(106) 评论(0) 推荐(0) 编辑
摘要:1. InnoDB 存储结构 从 MySQL 5.5 版本开始默认使用 InnoDB 作为引擎,它擅长处理事务,具有自动崩溃恢复的特性,在日常开发中使用非常广泛。下面是官方的 InnoDB 引擎架构图,主要分为「内存结构」和「磁盘结构」两大部分。 1.1 内存结构 内存结构主要包括 Buffer P 阅读全文
posted @ 2020-11-05 11:52 tree6x7 阅读(109) 评论(0) 推荐(0) 编辑
摘要:1. 检查工作 检查当前系统是否安装过 MySQL [CentOS6] rpm -qa|grep mysql → rpm -e --nodeps mysql-libs [CentOS7] rpm -qa|grep mariadb → rpm -e --nodeps mariadb-libs 检查当前 阅读全文
posted @ 2020-11-05 11:48 tree6x7 阅读(91) 评论(0) 推荐(0) 编辑
摘要:1. 存储过程 过程化 SQL 块主要有 2 种类型,即命名块和匿名块。 比如常见的单条 SQL 就是匿名块。匿名块每次执行时都要进行编译,它不能被存储到 DB 中,也不能在其他过程化 SQL 块中调用。 过程和函数是命名块,它们被编译后保存在 DB 中,称为“持久性存储模块”,可以被反复调用,运行 阅读全文
posted @ 2020-09-06 19:08 tree6x7 阅读(199) 评论(0) 推荐(0) 编辑
摘要:1. 变量 1.1 系统变量 变量由系统提供,不是用户定义,属于服务器层面。 分类 全局变量:服务器每次启动将为所有的全局变量赋初始值,针对于本次连接的所有会话有效; 会话变量 查看变量(默认 SESSION) 查看所有的系统变量:SHOW [GLOBAL|SESSION] VARIABLES 查看 阅读全文
posted @ 2020-09-06 19:04 tree6x7 阅读(104) 评论(0) 推荐(0) 编辑
摘要:视图是从一个或几个基本表(或视图)导出的表。它与基本表不同,是一个虚表。数据库中只存放视图的定义,而不存放视图对应的数据,这些数据仍存放在原来的基本表中。所以一旦基本表中的数据发生变化,从视图中查询出的数据也就随之改变了。从这个意义上讲,视图就像一个窗口,透过它可以看到数据库中自己感兴趣的数据及其变 阅读全文
posted @ 2020-09-06 19:02 tree6x7 阅读(279) 评论(0) 推荐(0) 编辑
摘要:1. 简述 Transaction Control Language 事务控制语言 事务由单独单元的一个或多个 SQL 语句组成,在这个单元中,每个 MySQL 语句是相互依赖的。而整个单独单元作为一个不可分割的整体,如果单元中某条 SQL 语句一旦执行失败或产生错误,整个单元将会回滚。所有受到影响 阅读全文
posted @ 2020-09-06 19:00 tree6x7 阅读(167) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示
主题色彩