mysql数据库学习
学习MySQL知识
常识与偏见
发现,尝试,去改变
展开
-
MySQL——记一次关联查询惨剧(左右连接查询优化)
1. 业务场景:A,B两表之间通过一个字段关联,比如B表依赖于A表的主键id字段,此时需要以A表为主表进行查询,同时关联查询出B表中的字段数据。SQL语句很简单,如下所示SELECT A.id, A.nickname, A.avatar, A.tag, B.start_date, B.end_date, B.monitor_status, B.operate_user_id, B.operate_user_name, B.data_update_timeFRO原创 2020-09-22 16:59:31 · 403 阅读 · 0 评论 -
MySQL深入学习(5)——索引
在学习索引之前,必须要先去了解B+树的数据结构以及其相关算法知识,本文中不做详细讲解。可以参考我的另一篇文章y有关于B与B+树的介绍1. InnoDB存储引擎索引类型刚开始接触MySQL中的索引时,真的很迷,因为其索引分类真的搞不清,简单列一下索引分类名词:B+树索引 全文索引 哈希索引 主键索引 唯一索引 普通索引 组合索引 聚集索引(聚簇索引) 非聚集索引(非...原创 2020-01-07 15:37:42 · 180 阅读 · 0 评论 -
MySQL深入学习(4)——分区表
1. 概述 分区功能其实并不是在存储引擎层完成的,所以并不是只有InnoDB存储引擎支持分区,常见的存储引擎MyISAM、NDB等都支持。但也并不是所有的存储引擎都支持。 分区是将一个表的数据按照某种方式,比如按照时间上的月份,分成多个较小的,更容易管理的部分,但是逻辑上仍是一个表。所以,分区跟性能没有必然关系,分区更多的是从管理的角度出发的。 MySQL数据库在5....原创 2020-01-04 15:19:18 · 273 阅读 · 1 评论 -
MySQL深入学习(3)——基于InnoDB的数据库表结构
1. InnoDB逻辑存储结构在InnoDB存储引擎的逻辑存储结构中,每一个表下的所有数据都会被放在同一个空间中,这个空间又被称为表空间(tablespace)。往下细分,表空间又由段(segment)组成,段由区(extent)组成,区由页(page,或者被称为块,block)组成,如下图所示1.1 表空间 表空间可以看做是InnoDB存储引擎逻辑结构的最高层,表的所有...原创 2020-01-04 00:21:33 · 407 阅读 · 0 评论 -
MySQL深入学习(2)——InnoDB存储引擎
1. InnoDB存储引擎体系架构 innoDB的存储引擎主要体系结构如上图所示 首先是工作线程:默认7个后台线程,分别是4个io thread(insert buffer、log、read、write),1个master thread(优先级最高),1个锁(lock)监控线程,1个错误监控线程。可以通过show engine innodb status来查看。新版本已对...原创 2019-12-31 18:39:04 · 605 阅读 · 1 评论 -
MySQL深入学习(1)——体系结构与存储引擎简介
1. 体系结构 1. 首先简单的了解一下什么是数据库系统:数据库管理系统由一个互相关联的数据的集合和一组用以访问这些数据的程序组成。这个数据集合通常称为数据库。 在数据库系统出现之前,是使用的文件系统,其存在非常大的弊端:(1)数据的冗余和不一致:文件通常由不同人创建、维护,相同信息可能存在多个文件,冗余的信息占用了存储空间,并且当部分数据进行修改时可能因某些文件未同时修...原创 2019-12-25 23:41:27 · 198 阅读 · 0 评论