【MySQL基础】MySQL基础:MySQL基本操作与架构

发布于:2025-05-20 ⋅ 阅读:(11) ⋅ 点赞:(0)

MySQL学习:

https://blog.csdn.net/2301_80220607/category_12971838.html?spm=1001.2014.3001.5482

前言:

这里是MySQL学习的第一篇,本篇主要是讲解一些MySQL的基础操作,但这并不是重点,本篇我们主要是要理解MySQL的本质是什么,它在操作系统中是以何种方式存在的,以及它的层次架构是什么。话不多说,下面我们开始今天的讲解。

注:我们下面的内容都是在Linux操作系统下进行的,所以首先需要先在Linux下安装MySQL,具体的操作流程可以去找个视频看一下

一、为什么需要数据库?

在计算机系统中,我们确实可以使用简单的文件来存储数据,但随着数据量的增长和复杂度的提高,文件存储方式暴露出诸多问题:

文件存储缺点 数据库解决方案
安全性问题 提供用户权限管理和数据加密机制
不利于数据查询 支持高效的SQL查询语言和索引机制
难以管理海量数据 优化存储结构,支持TB级数据处理
程序控制不便 提供标准API和事务管理

数据库按照存储介质可分为:

  • 磁盘数据库:数据持久化存储,如MySQL、Oracle

  • 内存数据库:数据存储在内存中,如Redis、Memcached

[虚拟图表:数据库与文件存储对比]
+---------------------+       +---------------------+
|    文件存储系统      |       |    数据库系统        |
+---------------------+       +---------------------+
| - 数据分散          |       | - 数据集中管理      |
| - 无统一访问接口    |       | - 标准SQL接口       |
| - 安全性低          |       | - 完善的权限体系    |
| - 查询效率低        |       | - 高效查询优化      |
+---------------------+       +---------------------+

二、主流数据库产品对比

MySQL在众多数据库产品中脱颖而出,下面是几种主流数据库的对比:

数据库 开发商 适用场景 特点
MySQL Oracle 电商、SNS、论坛 并发性好,简单SQL处理高效
Oracle Oracle 大型企业级应用 功能全面,适合复杂业务逻辑
SQL Server Microsoft .NET生态应用 与Windows平台深度集成
PostgreSQL 开源社区 各类规模应用 功能丰富,支持高级特性
SQLite 开源 嵌入式设备 轻量级,零配置
H2 Java社区 Java嵌入式应用 纯Java实现,内存数据库

表:主流数据库产品比较

三、MySQL安装与基本操作

3.1 安装MySQL

MySQL支持多种安装方式:

  • Linuxyum install mysql-server 或源码编译安装

  • Windows:下载MSI安装包图形化安装

  • MacOS:使用Homebrew brew install mysql

3.2 连接MySQL服务器

基本连接命令:

mysql -h 127.0.0.1 -P 3306 -u root -p

连接参数说明:

  • -h:主机地址,默认localhost

  • -P:端口号,默认3306

  • -u:用户名

  • -p:提示输入密码

3.3 服务管理

在Windows系统中,可以通过服务管理器(services.msc)来启动、停止MySQL服务。

[虚拟图表:MySQL服务管理界面]
+-----------------------------------+
|        Windows服务管理器          |
+-----------------------------------+
| 名称               状态    启动类型 |
|-----------------------------------|
| MySQL57           正在运行  自动    |
| MySQL80           已停止   手动    |
| Apache            正在运行  自动    |
+-----------------------------------+
| 启动  停止  暂停  重启动  属性      |
+-----------------------------------+

四、什么是数据库

首先我们给出结论:MySQL本质上是一个网络服务

它可以简单的分为两部分:mysql和mysqld,其中mysql可以看作数据库服务的客户端,mysqld是数据库服务的服务器端,所以mysql实际上是基于C/S架构的网络服务

因为mysql是网络服务,所以我们可以查看到mysql的特定端口号:

五、数据库基本操作实战

5.1 创建和使用数据库

-- 创建数据库
CREATE DATABASE helloworld;
-- 使用数据库
USE helloworld;

4.2 创建表并插入数据

-- 创建学生表
CREATE TABLE student(
    id INT,
    name VARCHAR(32),
    gender VARCHAR(2)
);

-- 插入数据
INSERT INTO student (id, name, gender) VALUES (1, '张三', '男');
INSERT INTO student (id, name, gender) VALUES (2, '李四', '女');
INSERT INTO student (id, name, gender) VALUES (3, '王五', '男');

4.3 查询数据

-- 查询所有数据
SELECT * FROM student;

查询结果示例:

id name gender
1 张三
2 李四
3 王五

五、MySQL架构解析

MySQL采用分层架构设计,主要组件包括:

[虚拟图表:MySQL架构图]
+---------------------------------------+
|           客户端连接层                |
|  (JDBC/ODBC/.NET/PHP/Python/PERL)    |
+---------------------------------------+
|             服务层                   |
| +---------------+ +----------------+ |
| | 连接池        | | SQL接口        | |
| | 认证/安全     | | DML/DDL/视图   | |
| +---------------+ +----------------+ |
| +---------------+ +----------------+ |
| | 查询缓存      | | 解析器         | |
| | 表缓存        | | 词法/语法分析  | |
| +---------------+ +----------------+ |
| +---------------+                    |
| | 优化器        |                    |
| | 查询重写/执行 |                    |
| +---------------+                    |
+---------------------------------------+
|           存储引擎层                 |
| +-------+ +-------+ +-------+        |
| |InnoDB | |MyISAM | |Memory| ...    |
| +-------+ +-------+ +-------+        |
+---------------------------------------+
|           文件系统层                 |
| 数据文件/日志文件/索引文件            |
+---------------------------------------+

六、SQL语言分类

SQL语言按照功能可分为以下几类:

分类 全称 功能 常用命令
DDL Data Definition Language 定义数据结构 CREATE, ALTER, DROP
DML Data Manipulation Language 数据操作 INSERT, UPDATE, DELETE
DQL Data Query Language 数据查询 SELECT
DCL Data Control Language 权限控制 GRANT, REVOKE, COMMIT

表:SQL语言分类及常用命令

七、MySQL存储引擎详解

7.1 什么是存储引擎?

存储引擎是MySQL中负责数据的存储、索引和检索的核心组件。MySQL采用插件式存储引擎架构,允许用户根据需要选择最适合的引擎。

7.2 查看存储引擎

SHOW ENGINES;

7.3 主流存储引擎对比

引擎 事务支持 锁粒度 外键支持 适用场景
InnoDB 支持 行级锁 支持 事务型应用
MyISAM 不支持 表级锁 不支持 读密集型应用
Memory 不支持 表级锁 不支持 临时数据缓存
Archive 不支持 行级锁 不支持 日志归档

表:MySQL存储引擎比较

[虚拟图表:存储引擎性能对比]
+-------------------+-----------+-----------+
|   存储引擎        | 读取性能 | 写入性能 |
+-------------------+-----------+-----------+
| InnoDB            | ★★★★☆    | ★★★★☆    |
| MyISAM            | ★★★★★    | ★★★☆☆    |
| Memory            | ★★★★★    | ★★★★★    |
| Archive           | ★★☆☆☆    | ★★★★☆    |
+-------------------+-----------+-----------+

八、总结

总之mysql的学习还是非常重要的,这篇的重点还是入门,对于数据库的具体操作后面还会有更详细的讲解,这篇我们主要要理解mysql的架构

本篇笔记:

创作不易,还望各位大佬点赞支持!!!


网站公告

今日签到

点亮在社区的每一天
去签到