阿国运维网技术分享平台:桌面运维、网络运维、系统运维、服务器运维(及云服务器),精品软件分享、阿国网络、尽在北京运维网
MySQL 是什么
MySQL 是一款开源的关系型数据库管理系统,由瑞典 MySQL AB 公司开发,现隶属于 Oracle 旗下。它就像一个超级大仓库,能高效存储和管理海量数据。凭借体积小、速度快、成本低、开源等显著优势,在 Internet 上的中小型网站开发中广泛应用。
MySQL 的发展历程
MySQL 的发展历程充满传奇色彩。1979 年,它的雏形 —— 一款底层面向报表的存储引擎工具 Unireg 诞生,设计者是蒙蒂・维德纽斯(Monty Widenius)。经过多年发展,1996 年 MySQL 1.0 版本发布。此后,MySQL AB 公司成立,它不断演进,陆续添加事务处理、多种存储引擎等功能。2008 年被 Sun 公司收购,后 Sun 公司又被甲骨文(Oracle)收购,MySQL 进入 Oracle MySQL 时代。这些年,MySQL 持续更新迭代,从 5.0 版本具备企业级特性,到 8.0 版本带来全新体验,再到 9.0 版本增加 JavaScript 存储程序等功能,每一次升级都为用户带来更强大、更高效的使用体验。
常用术语
键(Key):键的值在当前列中具有唯一性。常见的键有主键、外键、复合键等。
主键(Primary Key):一个或多个字段的组合,填入的数据必须能在本表中唯一标识本行,一个表中主键只能有一个。例如在用户表中,“用户 ID” 通常设为主键,保证每个用户都有唯一标识。
外键(Foreign Key):一个表中的某字段可填入的数据取决于另一个表的主键或唯一键已有的数据,外键用于关联两个表,外键可以不止一个。比如订单表中的 “用户 ID” 字段,它是用户表的主键,在订单表中作为外键,用于关联订单与对应的用户。
复合键(Composite Key):将多个列作为一个索引键,一般用于复合索引。例如在一张成绩表中,“学生 ID” 和 “课程 ID” 组合成复合键,用于唯一确定每个学生每门课程的成绩。
索引(Index):索引就像书籍的目录,使用索引可快速访问数据库表中的特定信息。它是对数据库表中一列或多列的值进行排序的一种结构。比如为商品表的 “价格” 列创建索引,查询特定价格范围的商品时速度会大幅提升。
约束(Constraint)条件:表中的数据要遵守的限制。常见约束有检查约束、外键约束等。例如 “CHECK (price> 0)” 是一个检查约束,确保商品表中 “价格” 列的数据大于 0。
检查(Check):一种约束方式,用于限制字段值在一定范围内。如上述商品表中对 “价格” 字段的检查约束,保证价格为正数。
外键约束(Foreign Key Constraint):确保外键值在关联表的主键或唯一键中存在,维护数据的参照完整性。例如订单表中的 “用户 ID” 外键,其值必须在用户表的 “用户 ID” 主键中存在,否则数据不一致。
存储引擎相关术语
存储引擎(Storage Engine):存储引擎指定了表的类型,决定如何存储和索引数据、是否支持事务等,同时也决定表在计算机中的存储方式。MySQL 常用的存储引擎有 MyISAM、InnoDB、MEMORY 等。
MyISAM:该存储引擎不支持事务、不支持外键,因此访问速度快,适合对事务完整性没有要求且以访问为主的应用,如一些只读的文档类网站数据库。
InnoDB:支持事务,具备提交、回滚、崩溃恢复能力等,比 MyISAM 更耗费磁盘空间。适合需要频繁更新、删除,对事务完整性要求高,需要实现并发控制的应用,如电商平台的数据库。
MEMORY:使用内存来存储数据,访问速度极快,但数据安全性没有保障。适用于数据量小、需要快速访问的应用,如一些临时数据存储场景。





