按照数据结构来组织、存储和管理数据的仓库;是一个长期存储在计算机内的、有组织的、可共享的、统一管理的大量数据的集合。
MySQL是关系型数据库,数据存储再磁盘中。操作MySQL时需要落盘才会返回。
OLTP,全称On-Line transaction processing,即翻译为联机事务处理。主要对数据库增删改查。
OLTP 主要用来记录某类业务事件的发生;数据会以增删改的方式在数据库中进行数据的更新处理操作,要求实时性高、稳定性强、确保数据及时更新成功。
OLAP,全称On-Line Analytical Processing,即翻译为联机分析处理。主要对数据库查询。
当数据积累到一定的程度,需要对过去发生的事情做一个总结分析时,就需要把过去一段时间内产生的数据拿出来进行统计分析,从中获取我们想要的信息,为公司做决策提供支持,这时候就是在做 OLAP 了。
结构化查询语言(Structured Query Language) 简称 SQL,是一种特殊目的的编程语言,是一种数据库查询和程序设计语言,用于存取数据以及查询、更新和管理关系数据库系统。SQL 是关系数据库系统的标准语言。
关系型数据库包括:MySQL, SQL Server, Oracle, Sybase,postgreSQL 以及 MS Access等。
SQL 命令包括:DQL、DML、DDL、DCL以及TCL。
(1)DQL,全称Data Query Language,即数据查询语言。
select:从一个或者多个表中检索特定的记录。
(2)DML,全称Data Manipulate Language,即数据操作语言。
insert:插入记录。
update:更新记录。
delete:删除记录。
(3)DDL,全称Data Define Languge,即 数据定义语言。
create:创建一个新的表、表的视图、或者在数据库中的对象;
alter:修改现有的数据库对象,例如修改表的属性或者字段;
drop:删除表、数据库对象或者视图;
(4)DCL,全称Data Control Language,即 数据控制语言。
grant:授予用户权限;
revoke:收回用户权限;
(5)TCL,全称Transaction Control Language ,即 事务控制语言。
commit:事务提交;
rollback:事务回滚;
MySQL的连接者:不同语言的代码程序和 MySQL 的交互(SQL交互)。
连接池主要 管理缓冲用户连接、用户名、密码、权限校验、线程处理等需要缓存的需求。
网络处理流程:主线程接收连接,接收连接交由连接池处理。
主要处理方式:IO多路复用 select + 阻塞的 IO。
每个连接,MySQL都会为每个客户端 fd 分配一个连接线程,专门负责处理该客户端的 sql 命令处理。
MySQL命令处理是多线程并发处理的,默认最大线程数是151个,超过151就无法操作了。另外,MySQL是采用短连接的方式,长时间没有操作MySQL的连接会被MySQL主动断开,回收资源。
缓冲组件是一块内存区域,用来弥补磁盘速度较慢对数据库性能的影响。
在数据库进行读取页操作,首先将从磁盘读到的页存放在缓冲池中,下一次再读相同的页时,首先判断该页是否在缓冲池中,若在缓冲池命中,直接读取;否则读取磁盘中的页,说明该页被 LRU 淘汰了。缓冲池中 LRU 采用最近最少使用算法来进行管理。
缓冲池缓存的数据类型有:索引页、数据页、以及与存储引擎缓存相关的数据(比如innoDB 引擎:undo 页、插入缓冲、自适应 hash 索引、innoDB 相关锁信息、数据字典信息等)。
执行一条select语句时,会经过:
本专栏知识点是通过<零声教育>的系统学习,进行梳理总结写下文章,对c/c++linux系统提升感兴趣的读者,可以点击链接,详细查看详细的服务:C/C++服务器课程