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

【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的架构

本篇笔记:

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

http://www.xdnf.cn/news/7151.html

相关文章:

  • C++ 与 Python 内存分配策略对比
  • 一发入魂:极简解决 SwiftUI 复杂视图未能正确刷新的问题(下)
  • Grafana当前状态:SingleStat面板
  • ArcGIS Pro 3.4 二次开发 - 框架
  • 【VBA/word】批量替换字体大小
  • 基于亚博K210开发板——安全散列算法加速器测试
  • LangChain4j入门(五)聊天记忆持久化
  • 用算术右移实现逻辑右移及用逻辑右移实现算术右移
  • 3.4/Q2,Charls最新文章解读
  • Day 24 训练
  • 2009-2025计算机408统考真题及解析
  • Java——创建多线程的四种方式
  • (二十一)Java集合框架源码深度解析
  • 渗透测试核心技术:信息收集与扫描
  • Java开发经验——阿里巴巴编码规范实践解析3
  • 报告精读:华为2024年知行合一通信行业数据治理实践指南报告【附全文阅读】
  • 职场方法论总结(4)-如何正确地汇报
  • Python Logging 模块完全指南
  • MyBatis(二)
  • 存储系统中的Mezzanine卡、Daughter卡与PCIe卡:功能与差异
  • Java中关于方法的调用和递归
  • Python_day29类的装饰器知识点回顾
  • frp内网穿透
  • DAY 4 缺失值的处理
  • yolov5和yolov8 配置torch离线文件GPU版本分享下载
  • 归一化函数 & 激活函数
  • 大模型deepseek如何助力数据安全管理
  • JavaScript原型链
  • 谢赛宁团队提出 BLIP3-o:融合自回归与扩散模型的统一多模态架构,开创CLIP特征驱动的图像理解与生成新范式
  • MLLM常见概念通俗解析(四)