MySQL数据库精研之旅第一期:开启数据管理新旅程

专栏:MySQL数据库成长记

个人主页:手握风云

目录

一、数据库简介

[1.1. 数据库的概念](#1.1. 数据库的概念)

[1.2. 数据库和数据结构的关系](#1.2. 数据库和数据结构的关系)

[1.3. 主流数据库](#1.3. 主流数据库)

[1.3.1. 关系型数据库](#1.3.1. 关系型数据库)

[1.3.2. 非关系型数据库](#1.3.2. 非关系型数据库)

[1.4. 关系型数据库的概念](#1.4. 关系型数据库的概念)

二、MySQL配置

[2.1. mysqld服务端程序](#2.1. mysqld服务端程序)

[2.2. 数据库服务器,数据库与表之间的关系](#2.2. 数据库服务器,数据库与表之间的关系)

[2.3. 选项(配置)文件](#2.3. 选项(配置)文件)

三、客户端工具

[3.1. mysql命令行工具](#3.1. mysql命令行工具)

[3.2. Workbench](#3.2. Workbench)

[3.3. Navicat Lite版](#3.3. Navicat Lite版)

四、SQL简介

[4.1. SQL的概念](#4.1. SQL的概念)

[4.2. MySQL的分类](#4.2. MySQL的分类)

五、MySQL架构

六、存储引擎

[6.1. 简介](#6.1. 简介)

[6.2. 查看存储引擎](#6.2. 查看存储引擎)


一、数据库简介

1.1. 数据库的概念

数据库是20 世纪 60 年代末发展起来的⼀项重要技术,已经成为计算机科学与技术的一个重要分支。数据库技术主要是⽤来解决数据处理的⾮数值计算问题,数据处理的主要内容是数据的存储、查询、修改、排序和统计等。

1.2. 数据库和数据结构的关系

数据结构是在内存中对数据的一种方法,数据库是使用了一些合适的数据结构来方便我们对数据的一个查询与写入等。比如我们要想快速高效地查询数据就要使用对应的结构,或者我们要组织大量的文件,也要使用对应的结构,对于MySQL而言,要使用的是一种经过不断优化之后的树型结构。用户写入的数据要保存在磁盘里,最终写入存储介质里,方便以后的读取。如果我们不存储在介质里面,比如像我们向ArrayList添加元素,这里面的元素会保存在内存中,电脑重启就会导致数据的丢失。

1.3. 主流数据库

1.3.1. 关系型数据库

  • **oracle:**甲骨文产品,适合大型项目,业内最强的数据库,没有之一,但是由于收费的原因,多用于世界500强、金融、保险、能源等企业。
  • **MySQL:**开源免费,最受欢迎的数据库,在中小企业中普及率⾮常高,属于甲骨文,主要用在电商,论坛等。
  • **PostgreSQL:**加州⼤学伯克利分校计算机系开发的关系型数据库,可以免费使⽤,修改和分发。
  • **SQL Sever:**微软推出的⼀款专业级数据库,与旗下的操作系统,编程环境配合使用,适⽤于中大型项⽬。

1.3.2. 非关系型数据库

  • Redis:流行的基于键值对的内存数据库,常用作缓存,支持数据持久化,支持多种数据结构。
  • **MongoDB:**基于NoSQL的⽂档型数据库,易扩展,高性能,高可用性,支持丰富的查询和聚合操作。

1.4. 关系型数据库的概念

关系型数据库是指采⽤了关系模型来组织数据的数据库,以行和列的形式存储数据。关系模型可以简单理解为⼆维表格模型,⽽⼀个关系型数据库就是由⼆维表及其之间的关系组成的⼀个数据组织。

每个表中的每⼀条记录称为一行数据,每⼀个数据行由⼀个或多个列组成。

二、MySQL配置

2.1. mysqld服务端程序

当MySQL安装完成之后,bin⽬录下有⼀个mysqld.exe(windoows)的可执行程序,mysqld可执行程序运行后,MySQL服务也就启动了。当把MySQL服务配置为自启动,操作系统启动时会⾃动运⾏mysqld可执行程序,从而启动MySQL服务。

2.2. 数据库服务器,数据库与表之间的关系

数据库服务器是指在机器上安装了⼀个数据库管理系统程序,这个管理程序可以管理多个数据库, ⼀般开发⼈员会针对每⼀个应用创建⼀个数据库。

MySQL本质上其实还是一个安装到操作系统上的一个软件,与OFFICE,微信、飞书等是相同的级别。安装完之后运行产生一个进程,然后管理一些具体的数据库,如下图中的MySQL数据库管理着很多的数据库(DB),而一个数据库有着很多张表。比如说我们访问微信这个软件时,好友列表和朋友圈就存储在两个不同的数据库里面,而不同的数据库里面都是和对应业务关联性比较大的表,表中又可以保存具体的行。

2.3. 选项(配置)文件

MySQL安装成功后,如果想修改默认配置,比如修改端⼝号,数据⽬录位置,默认使⽤的存储引擎,默认字符编码集和排序规则,日志路径等等,可以通过编辑选项文件实现。在默认的路径C:\ProgramData\MySQL\MySQL Server 8.0可以查看,Data表示储存数据的文件,my.ini是配置文件。在初阶的时候,我们不需要去修改配置,直接默认就可以。

三、客户端工具

3.1. mysql命令行工具

MySQL安装成功后⾃带的命令行客户端工具,可以输入命令和执行SQL语句。在这之前,我们也需要配置环境变量以保证正常的运行。

mysql的基本使用非常简单,打开终端并输⼊以下命令:

上图中的"-u"表示登陆用户名,"root"是默认的根用户,"-p"表示要输入的验证密码,Server version表示我们连接的版本,我们也可以输入"select version()"来查询当前MySQL的版本号。

3.2. Workbench

MySQL官方提供的可视化客户端,运行后如下图所示。我们也可以在里面写一些SQL语句来运行。但整体的体验感还是比较差,企业当中用到更多的还是Navicat Lite版。

当图标变绿之后,就表示已经打开了连接。

四、SQL简介

4.1. SQL的概念

SQL(Structured Query Language)是结构化查询语⾔的简称,是⼀种数据库查询和程序设计语⾔, ⽤于存取数据以及查询、更新和管理关系数据库。MySQL语言的学习本质也是SQL语言去操作数据库,SQL相当于一个标准,不同的厂商运行不同的数据库会略微有不同的差别,但总体还是在大的框架以内。

4.2. MySQL的分类

  • DDL:"Data Definition Language"的简称。数据定义语言,用来维护存储数据的结构,比如创建、修改的一些操作,工作在数据库级别。代表指令:create, drop, alter。
  • DML:"Data Manipulation Language"的简称。数据操纵语言,用来对数据进行操作,主要工作在数据行级别。代表指令:insert,delete,update,select。
  • DCL:"Data Control Language"的简称。数据控制语⾔,主要负责权限管理和事务,通过这些语言,可以使哪些用户有访问的权限。代表指令:grant,revoke,commit

前两个是跟开发强相关的,最后一个是跟数据库管理员相关的。

五、MySQL架构

外部程序就是客户端或者应用程序,开发者只需把服务器、端口号、用户名和密码一填就可以访问数据库了。连接层主要是鉴权操作,查看用户名和密码是否操作。接下来是服务层,用来解析和优化SQL语句,再发送到存储引擎层,比如我们输入"select version();",就可以返回版本号。存储引擎主要是处理数据的,里面包含了很多种,不同的存储引擎对数据的组织是不同的,最常用的就是InnoDB。最后一层是文件系统层,把数据放到磁盘上进行永久系统化已保存数据。

六、存储引擎

6.1. 简介

存储引擎是MySQL数据库处理数据的核心组件,不同的存储引擎对数据如何存储、索引、更新和查询的实现⽅式各有不同,在不同的业务场景可以选⽤合适的存储引擎。MySQL服务器采⽤可插拔的存储引擎架构,在服务器运⾏时可以动态的加载和卸载。

6.2. 查看存储引擎

相关推荐
XU磊26022 分钟前
告别 ResultSet 的烦恼:使用 Apache DBUtils 和 ArrayList 优化数据管理
java·数据库·mysql·apache·database
master-dragon25 分钟前
缓存及其问题解决
数据库·缓存
954L2 小时前
docker安装milvus向量数据库&Attu可视化界面
数据库·docker·milvus·attu
SelectDB2 小时前
MiniMax GenAI 可观测性分析 :基于阿里云 SelectDB 构建 PB 级别日志系统
大数据·数据库·aigc
专注_每天进步一点点2 小时前
Redis客户端Jedis、Lettuce 和 Redisson优缺点总结
数据库·redis·缓存
果冻kk2 小时前
【宇宙回响】从Canvas到MySQL:飞机大战的全栈交响曲【附演示视频与源码】
java·前端·数据库·spring boot·mysql·音视频·html5
桃酥4033 小时前
5、MySQL为什么使用 B+树 来作索引【高频】
数据库·b树·mysql
是阿建吖!3 小时前
【MySQL】基本查询(表的增删查改+聚合函数)
数据库·mysql
小玉起起4 小时前
什么是时序数据库?
数据库·时序数据库
绿龙术士4 小时前
【笔记】SQL进阶教程(第二版)
数据库