![](https://img-blog.csdnimg.cn/20201014180756780.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
MySQL 进阶
文章平均质量分 94
燕归来兮_
以梦为码,不负韶华,更多内容欢迎访问 个人博客网站 https://www.zhoutao123.com
展开
-
【MySQL 进阶笔记】InnoDB 的事务隔离级别以及死锁
推荐阅读学习笔记 《 深入理解 Java 虚拟机》学习笔记 《 后端架构设计》学习笔记 《 Java 基础知识进阶》学习笔记 《 Nginx 学习笔记》学习笔记 《 前端开发杂记》学习笔记 《 设计模式学习笔记》学习笔记 《 DevOps 最佳实践指南》学习笔记 《 Netty 入门与实战》学习笔记 《 高性能MYSQL》学习笔记 《 JavaEE 常用框架》学习笔记 《 Java 并发编程学习笔记》学习笔记 《 分布式系统》学习笔记 《 数据结构与算法》锁在InnoDB原创 2020-11-01 23:39:27 · 220 阅读 · 0 评论 -
【MySQL 进阶】InnoDB 存储引擎中的锁
推荐阅读学习笔记 《 深入理解 Java 虚拟机》学习笔记 《 后端架构设计》学习笔记 《 Java 基础知识进阶》学习笔记 《 Nginx 学习笔记》学习笔记 《 前端开发杂记》学习笔记 《 设计模式学习笔记》学习笔记 《 DevOps 最佳实践指南》学习笔记 《 Netty 入门与实战》学习笔记 《 高性能MYSQL》学习笔记 《 JavaEE 常用框架》学习笔记 《 Java 并发编程学习笔记》学习笔记 《 分布式系统》学习笔记 《 数据结构与算法》开发者在开发应用的原创 2020-11-01 23:37:27 · 218 阅读 · 0 评论 -
【MySQL】 MySQL 索引的创建与维护
文章目录1、索引的创建2、索引的更新与删除4、索引总结1、索引的创建创建索引可以在创建表的时候同步创建,也可以在创建表之后,手动的创建索引,两者没有本质的区别。比如下面的语句就是在创建表的时候创建索引。CREATE TABLE `customer` ( `customer_id` smallint(5) unsigned NOT NULL AUTO_INCREMENT, `store_id` tinyint(3) unsigned NOT NULL, `first_name` varcha原创 2020-10-13 16:54:46 · 269 阅读 · 0 评论 -
【MySQL 进阶】索引基础入门与相关知识点
文章目录1. 索引1.1 索引用处1.2 索引的分类1.3 主键的选择1.4 技术名词1.4.1 回表1.4.2 覆盖索引1.4.3 最左匹配1.4.4 索引下推1.5 索引列的匹配方式1.6 哈希索引1.7. 索引优化技巧1. 索引MySQL 的索引所使用的数据结构和具体的存储引擎有关系,索引能够将随机IO 变成顺序IO,大大减少了数据的扫描行数以及帮助服务器排序和避免临时表的创建。1.1 索引用处能够快速的查找和匹配Where 语句的执行从查询中消除行,一般情况下存在多个索引的情况下,My原创 2020-10-13 16:53:34 · 115 阅读 · 0 评论 -
【MySQL】MySQL 索引常用数据结构
文章目录1. BTREE 数据结构1.1 BTREE 结构的特点1.2 BTREE 构造演示2. BTREE+ 数据结构1. BTREE 数据结构BTREE 又称之为多路平衡搜索树。1.1 BTREE 结构的特点BTREE 具有以下特点:一个M叉的BTREE 数据结构,每个节点最多包含 m-1 个子节点除了根节点和叶子节点外,每个节点至少有 [ceil(m/2)] 个子节点如果根节点不是叶子节点,则其至少有两个分支所有的叶子节点均处在同一层每个非叶子节点由 N 个 Key 和 N+1原创 2020-10-13 09:46:08 · 183 阅读 · 0 评论 -
【MySQL】 存储类型数据优化
文章目录1、 整数类型2、实数类型3、字符串类型VARCHAR 和 CAHR 类型BLOB 和 TEXT 类型使用枚举 (ENUM) 代替字符串4、时间日期类型5、标识符6、特殊类型MySQL中可以存储两种数据类型:整数类型(whole number)以及实数类型(real number),这两种数据类型有着不同的特点,笔者这里简单记录下其区别和使用时候的需要注意的问题。1、 整数类型MySQL 中存储整数可以使用这几种整数类型:TINYINT、SMALLINT、MEDIUMINT、INT、BIGI原创 2020-10-13 09:40:25 · 107 阅读 · 0 评论 -
【MySQL 进阶】 选择优化的数据类型
文章目录1. 更小的通常更好2. 简单更好3. 尽量避免使用NULL4. 总结MySQL 支持的类型非常多,选择正确且合适的类型对于获得高性能非常重要。下面有简单的几个原则可以对选择合适的数据类型留下参考依据。1. 更小的通常更好一般情况下,应该尽量使用可以正确存储数据的最小数据类型,例如只需要存储0-200,使用tinyint unsigned 比int是更好地选择。更小的数据类型通常更快,占用内存和CPU资源更少,以及处理数据时间更短。2. 简单更好简单的数据类型通常更快地处理,同时占用更原创 2020-10-13 09:37:08 · 91 阅读 · 2 评论 -
【MySQL 进阶】MySQL 的连接方式
MySQL 支持使用TCP/IP 协议以及Socket方式登录。前者支持大部分的方式,后者仅支持Linux或者Unix环境。1、 TCP/IP 连接TCP/IP 连接是在所有平台下都支持的连接方式。也是网络中均支持的方式。这种方式在客户端和服务端通过网络的方式进行通讯比如下面的场景就是使用TCP/IP 登录的示例。root@5942ac265a6e:/var/lib/mysql/test# mysql -uroot -pEnter password:Welcome to the MySQL m原创 2020-10-13 09:26:25 · 111 阅读 · 0 评论 -
【MySQL 进阶】MySQL 的体系架构
由下图,可以看出MySQL最上层是连接组件。下面服务器是由连接池、管理工具和服务、SQL接口、解析器、优化器、缓存、存储引擎、文件系统组成。1、MySQL 连接层MySQL 客户端: 用户通过TCP 连接到MySQL的服务器,常见的MySQL 客户端包括,JDBC,PHP等等MySQL 连接池:由于每次建立建立需要消耗很多时间,连接池的作用就是将这些连接缓存下来,下次可以直接用已经建立好的连接,提升服务器性能。连接管理主要负责鉴权,线程复用,连接管理等等管理工具和服务:系统管理和控制工原创 2020-10-12 10:47:01 · 130 阅读 · 1 评论 -
【MySQL 进阶】InnoDB 存储引擎下的表
文章目录1、索引组织表2、InnoDB 逻辑存储结构2.1 表空间2.2 段 (Segement)2.3 区 (Extent)2.4 页 (Page)2.5 行 (Row)3、InnoDB 行记录格式1、索引组织表在InnoDB 存储引擎中,表都是按照主键顺序组织存放的,这种存储方式称之为所以组织表(Index Origanized Table)。在InnoDB 中每个表都有主键索引,如果没有显式的定义主键,那么则会按照下面的规则选择或者创建主键。首先判断表结构中是够有唯一非空索引,如果有则以该索原创 2020-10-13 09:33:23 · 136 阅读 · 0 评论 -
【MySQL 进阶】重做日志 与 Checkpoint 技术
1、Redo Log 重做日志前面已经提到,使用 缓冲池技术的原因是为了协调 CPU 以及磁盘速度。页数据的改变通常在缓冲池中执行。如果一条 DML 语句修改了数据造成缓冲池和磁盘中数据不一致的问题。那么此时的页称之为脏页(dirty page)。数据库需要将脏页刷新到磁盘中。但是倘若每一个页变成脏页就要执行一次刷新操作,那么其开销是非常大的。当刷新到磁盘的时候发生宕机,可能就会造成数据丢失,所以事务系统通常采用 Write Ahead Log 的方式,先写重做日志,然后在修改页,如果发生数据丢失通过重做原创 2020-10-13 09:31:47 · 177 阅读 · 0 评论 -
【MySQL】InnoDB 存储引擎技术架构以及其概述
InnoDB是事务安全的存储引擎,设计上采用类似于 Oracle 数据库的架构。InnoDB 是第一个完整支持 ACID 事物的存储引擎。其特点是行级锁支持、支持MVCC、支持外键等等。InnoDB 存储引擎已被大型互联网公司认证为可靠的数据库存储引擎。1、InnoDB的版本InnoDB 有多个版本的,一种是静态的版本,这里称之为老版本的InnoDB,一种是动态的InnoDB 版本,通过数据库CLI 可以查看到InnoDB 的版本 show variables like 'innodb_version原创 2020-10-13 09:30:43 · 128 阅读 · 2 评论 -
【MySQL 进阶】什么是存储引擎(Save Engines)?
存储引擎说白了就是如何存储数据、如何为存储的数据建立索引和如何更新、查询数据等技术的实现方法。因为在关系数据库中数据的存储是以表的形式存储的,所以存储引擎也可以称为表类型(即存储和操作此表的类型)。在Oracle 和SQL Server等数据库中只有一种存储引擎,所有数据存储管理机制都是一样的。而MySql数据库提供了多种存储引擎。用户可以根据不同的需求为数据表选择不同的存储引擎,用户也可以根据自己的需要编写自己的存储引擎。1、MySql中有哪些存储引擎?MyISAM:这种引擎是mysql最早提供的原创 2020-10-13 09:29:17 · 288 阅读 · 0 评论 -
【MySQL 进阶】SQL 语句分类
SQL 语句分类(1)数据定义。(SQL DDL)用于定义SQL模式、基本表、视图和索引的创建和撤消操作。(2)数据操纵。(SQL DML)数据操纵分成数据查询和数据更新两类。数据更新又分成插入、删除、和修改三种操作。(3)数据控制。包括对基本表和视图的授权,完整性规则的描述,事务控制等内容。(4)嵌入式SQL的使用规定。涉及到SQL语句嵌入在宿主语言程序中使用的规则。1、DDL (Database Definition Language)数据库定义语言DDL是SQL语言的四大功能之一。用于定义原创 2020-10-12 10:44:50 · 223 阅读 · 1 评论