MySQL--数据库基础

张开发
2026/4/15 22:14:31 15 分钟阅读

分享文章

MySQL--数据库基础
数据库概念简单来说数据库​ 是一个有组织、可长期存储在计算机内、可共享、统一管理的数据集合。你可以把它想象成一个电子化的文件柜但功能要强大得多。管理数据库的软件称为数据库管理系统我们常说的DBMS比如 MySQL、Oracle、SQL Server、PostgreSQL 等。数据库优点相比传统的文件存储数据库解决了以下核心问题持久化数据不会因为程序关闭而丢失。高效存取能快速地从海量数据中查询、更新信息。数据共享与安全多用户可安全并发访问并有权限控制。数据一致性通过事务等机制保证数据的准确和完整。减少冗余好的设计可以避免数据重复存储。数据库主要类型关系型数据库核心概念基于“关系模型”数据以二维表的形式组织。关键术语表存储数据的主体如“学生表”、“课程表”。行/记录表中的一条数据代表一个实体。列/字段表的属性如“学号”、“姓名”。主键唯一标识一条记录的字段。外键建立表与表之间关联的字段。优点数据结构清晰支持复杂的查询和事务处理数据一致性高。缺点在处理海量、非结构化或高并发读写时扩展性可能受限。代表产品MySQL, PostgreSQL, Oracle, SQL Server。非关系型数据库核心概念不局限于固定的表结构设计灵活针对不同的应用场景有不同的数据模型。主要类型文档型数据存储类似 JSON 文档。代表MongoDB, CouchDB键值型简单的键-值对存储。代表Redis, Memcached列存储型按列族存储数据适合大数据分析。代表HBase, Cassandra图数据库用节点和边存储关系数据。代表Neo4j优点schema灵活易于水平扩展读写性能高。缺点通常不支持复杂的跨文档/集合的事务和关联查询。基本使用连接服务器mysql -h 127.0.0.1 -P 3306 -u root -p注意 如果没有写-h 127.0.0.1 默认是连接本地如果没有写-P 3306 默认是连接3306端口号。服务器、数据库、表关系所谓安装数据库服务器只是在机器上安装了一个数据库管理系统程序这个管理程序可以管理多 个数据库一般开发人员会针对每一个应用创建一个数据库。 为保存应用中实体的数据一般会在数据库中创建多个表以保存程序中实体的数据。 数据库服务器、数据库和表的关系如下概念计算机世界图书馆比喻说明服务器一台运行数据库软件的物理 / 虚拟计算机整个图书馆大楼提供存放和管理的物理 / 逻辑空间数据库数据库管理系统中的一个逻辑数据容器图书馆中的一个专题书库如 “计算机科学书库”、“文学书库”按主题或应用划分的逻辑单元表数据库中存储数据的二维结构书库中的一个具体书架如 “编程语言书架”、“小说书架”存储具体同类数据的结构行 / 记录表中的一行数据书架上的一本具体的书一个独立的实体 / 对象列 / 字段表中的一列属性书的一个属性如书名、作者、ISBN 号实体的属性 / 特征使用案例创建数据库create database helloworld;使用数据库use helloworld;创建数据库表create table student( id int, name varchar(32), gender varchar(2) };表中插入数据insert into student(id,name,gender) values(1,张三,男;查询表中数据select * from student;存储引擎存储引擎是数据库管理系统如何存储数据、如何为存储的数据建立索引和如何更新、查询数据等技术的实现方法。MySQL的核心就是插件式存储引擎支持多种存储引擎。特性InnoDBMyISAMMEMORYARCHIVE事务支持✅ 支持 (ACID)❌ 不支持❌ 不支持❌ 不支持锁的粒度行级锁表级锁表级锁行级锁外键约束✅ 支持❌ 不支持❌ 不支持❌ 不支持数据恢复支持崩溃后安全恢复恢复能力弱数据丢失不支持存储限制64TB256TB受内存限制无明确限制存储文件.frm(结构) .ibd(数据 索引).frm.MYD(数据) .MYI(索引)仅内存.frm.arzMVCC✅ 支持高并发基石❌ 不支持❌ 不支持❌ 不支持全文索引✅ MySQL 5.6 支持✅ 支持❌ 不支持❌ 不支持适用场景默认选择OLTP只读 / 读多写少OLAP临时表 / 缓存日志 / 归档InnoDBMySQL 5.5 之后默认的存储引擎。除非有特殊需求否则永远使用 InnoDB。核心特性事务安全完全支持 ACID 特性是 OLTP 应用的基础。行级锁只锁住需要修改的行极大提高并发写性能。外键约束保证数据的一致性和完整性。MVCC多版本并发控制读写不互斥是高性能高并发的基础。聚集索引数据文件本身.ibd就是主键索引的 B 树数据按主键顺序物理存储。因此 InnoDB 必须有主键且主键查询极快。支持热备份可以通过工具在线备份而不锁表。MyISAMMySQL 5.5 之前的默认引擎现已不推荐在新项目中使用。核心特性表级锁任何写操作都会锁住整张表并发性能差。不支持事务崩溃后数据可能不一致。非聚集索引索引和数据是分开的.MYI 和 .MYD 文件索引保存的是数据行的地址指针。压缩表对于不常修改的数据可压缩存储节省空间。全文索引早期版本中只有 MyISAM 支持全文索引。致命缺点1写操作会锁定全表在写并发高的场景下是性能杀手。2崩溃后数据恢复困难。

更多文章