【MySQL】数据库基础
数据库?
存储数据用文件就可以了,为什么还要弄个数据库?
文件保存数据有以下几个缺点:
- 文件的安全性问题
- 文件不利于数据查询和管理
- 文件不利于存储海量数据
- 文件在程序中控制不方便
一般的文件提供了 数据的存储功能 ,但是文件并没有 提供非常好的数据内容管理能力
可以说数据库就是为了解决文件的短板设计的,它能更有效的管理数据。
- 所谓安装数据库服务器,只是在机器上安装了一个数据库管理系统程序 ,这个管理程序可以管理多
个数据库 - MySQL是一套给用户提供数据存储 / 服务的网络程序。
- 数据库一般指的是在磁盘或者内存 中存储的特定结构组织 的数据,将来在磁盘上存储的一套数据按方案。
数据库存储介质:
- 磁盘
- 内存
服务器,数据库,表三者关系



基本使用
- 连接服务器
注意: 如果没有写 -h 127.0.0.1 默认是连接本地
如果没有写 -P 3306 默认是连接3306端口号
MySQL架构
MySQL 是一个可移植 的数据库,几乎能在当前所有的操作系统上运行。各种系统在底层实现方面各有不同,但是 MySQL 基本上能保证在各个平台上的物理体系结构的一致性。
-
连接层
功能:主要处理客户端与服务器之间的连接请求。技术细节:通过 TCP/IP 协议来监听客户端的连接请求,使用listen()函数监听指定的端口(默认 3306 端口),当有请求到达时,调用accept()函数创建新的连接线程来处理该连接。
-
服务层
SQL 接口:接收客户端发送的 SQL 语句,进行语法检查 ,判断 SQL 语句是否符合 MySQL 的语法规则。解析器:对通过语法检查的 SQL 语句进行解析,构建抽象语法树(AST),分析 SQL 语句的语义,明确其要执行的操作;
优化器:基于解析器生成的抽象语法树,选择最优的执行计划。
-
存储引擎层 (show engines;)
存储引擎是:数据库管理系统如何存储数据 、如何为存储的数据建立索引 和如何更新、查询数据等技术 的实现方法。
常见存储引擎:
InnoDB:支持事务、行级锁、外键约束等,提供了高可靠性和数据完整性,适用于处理高并发的读写操作,是 MySQL 默认的存储引擎。
MyISAM:不支持事务和行级锁,查询性能较高,但在写操作时会锁定整张表,适合读多写少的场景,如数据仓库等。
-
系统文件层
功能:负责与底层操作系统进行交互,管理 MySQL 的各种文件。文件类型:
数据文件:如 InnoDB 的数据文件默认以.ibd为扩展名,用于存储表数据和索引数据。
日志文件:重做日志用于在系统崩溃时恢复数据,保证数据的持久性;二进制日志用于记录所有更改数据的 SQL 语句,用于主从复制和数据恢复。
配置文件:如my.cnf(Linux 系统)或my.ini(Windows 系统),用于配置 MySQL 服务器的各种参数,如字符集、缓存大小、连接数等。