当前位置: 首页 > news >正文

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

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在众多数据库产品中脱颖而出,下面是几种主流数据库的对比:

数据库开发商适用场景特点
MySQLOracle电商、SNS、论坛并发性好,简单SQL处理高效
OracleOracle大型企业级应用功能全面,适合复杂业务逻辑
SQL ServerMicrosoft.NET生态应用与Windows平台深度集成
PostgreSQL开源社区各类规模应用功能丰富,支持高级特性
SQLite开源嵌入式设备轻量级,零配置
H2Java社区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;

查询结果示例:

idnamegender
1张三
2李四
3王五

五、MySQL架构解析

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

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

六、SQL语言分类

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

分类全称功能常用命令
DDLData Definition Language定义数据结构CREATE, ALTER, DROP
DMLData Manipulation Language数据操作INSERT, UPDATE, DELETE
DQLData Query Language数据查询SELECT
DCLData 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的架构

本篇笔记:

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

相关文章:

  • PyTorch图像建模(图像识别、分割和分类案例)
  • 黑马程序员C++2024新版笔记 第三章 数组
  • 没有 Mac,我如何用 Appuploader 完成 iOS App 上架
  • C++(25): 标准库 <deque>
  • 打卡day30
  • 二:操作系统之进程通信(IPC)
  • 大语言模型训练数据格式:Alpaca 和 ShareGPT
  • 显示器无法接受键盘/鼠标问题解决
  • C++面试2——C与C++的关系
  • 2021ICPC四川省赛个人补题ABDHKLM
  • day 29
  • web页面布局基础
  • FAL结构体分析
  • 【MySQL】存储过程,存储函数,触发器
  • GESP编程能力等级认证C++3级1-数组1
  • 一:操作系统之系统调用
  • fcQCA模糊集定性比较分析法-学习笔记
  • supervisorctl守护进程
  • DeepSeek在简历筛选系统中的深度应用
  • 【PRB】1.5w字深度解析GaN中最浅的受主缺陷
  • MiniMax发布新一代语音大模型
  • 两名游客刻划八达岭长城,被拘5日罚200元
  • AI快速迭代带来知识焦虑,褚君浩院士提出“四维能力模型”
  • 国家统计局:1-4月份,全国固定资产投资同比增长4.0%
  • 上海百年龙华码头开启新航线,弥补浦江游览南段空缺
  • 解放日报“解码上海AI产业链”:在开源浪潮中,集聚要素抢先机