MySQL - 简介
MySQL - 现代介绍
Section titled “MySQL - 现代介绍”什么是数据库?
Section titled “什么是数据库?”数据库是结构化信息或数据的有组织集合,通常以电子方式存储在计算机系统中。数据库通常由数据库管理系统(DBMS)控制。数据、DBMS 以及与之相关的应用程序一起被称为数据库系统,通常简称为数据库。
关系型数据库与 NoSQL 数据库
Section titled “关系型数据库与 NoSQL 数据库”当今最常见的数据库类型是关系型数据库(Relational Database),它将数据组织成具有行和列的表,并强制执行严格的模式。MySQL 是关系型数据库管理系统(RDBMS)的一个典型示例。它们使用结构化查询语言(SQL)进行数据操作。
近年来,NoSQL(Not Only SQL,意为“不仅仅是 SQL”)数据库因处理大量非结构化或半结构化数据而受到欢迎,为特定用例(例如,大数据、实时 Web 应用程序)提供了更大的灵活性和可伸缩性。然而,对于需要强一致性和复杂结构化查询的应用程序,像 MySQL 这样的 RDBMS 仍然是行业标准。
RDBMS 核心概念解析
Section titled “RDBMS 核心概念解析”要理解 MySQL,您必须熟悉以下这些基本的 RDBMS 术语:
- 数据库(Database):所有相关数据对象(主要是表)的容器。
- 表(Table):数据库中以结构化格式存储的相关数据集合,由列和行组成。
- 列(Column)(或字段 Field):表中垂直的实体,包含与行中特定字段相关的所有信息。
- 行(Row)(或记录 Record):表中水平的实体,代表一个单一的、隐式结构化的数据项。
- 主键(Primary Key):唯一标识表中每条记录的约束。它必须包含唯一值,且不能包含 NULL 值。
- 外键(Foreign Key):用于连接两个表的键。它是在一个表中的字段(或一组字段),引用另一个表中的主键。
- 索引(Index):一种数据结构,它以额外的写入和存储空间为代价,提高了数据库表上的数据检索操作速度。
- 引用完整性(Referential Integrity):数据的一种属性,表明其所有引用都是有效的。在 RDBMS 中,它确保外键值始终指向一个存在的、有效的行。
为什么选择 MySQL?
Section titled “为什么选择 MySQL?”MySQL 是世界上最受欢迎的开源关系型数据库。它的流行得益于多种因素:
- 开源且经济高效:社区版免费使用,使其适用于各种规模的项目。
- 经验证的可靠性和性能:MySQL 以其稳定性、效率和速度而闻名,为大量高流量网站和应用程序提供支持。
- 丰富的功能集:现代 MySQL(8.0+ 版本)支持高级功能,如 JSON 数据类型、公共表表达式(CTE)、窗口函数和强大的安全功能。
- 跨平台和语言支持:它几乎可以在所有平台(包括 Linux、macOS 和 Windows)上运行,并为所有主流编程语言(如 Python、Java、Node.js、PHP、Go 和 C++)提供连接器。
- 强大的社区和生态系统:庞大的全球社区和全面的文档意味着总能获得帮助和资源。它与现代工具和框架良好集成。
- 可伸缩性:虽然以支持中小型应用程序而闻名,但 MySQL 可以通过集群和复制来扩展,以处理超大型数据集和高并发工作负载。
MySQL 简史
Section titled “MySQL 简史”MySQL 由瑞典公司 MySQL AB 创建,该公司由 David Axmark、Allan Larsson 和 Michael “Monty” Widenius 共同创立。第一个版本于 1995 年发布。它作为 LAMP(Linux、Apache、MySQL、PHP/Perl/Python)Web 应用程序软件栈的核心组件迅速获得普及。
- 2008 年:Sun Microsystems 收购了 MySQL AB。
- 2009 年:作为对此次收购的回应,原创始人 Monty Widenius 分叉了 MySQL,创建了 MariaDB,这是一个社区开发、商业支持的分支,旨在保持自由和开源。
- 2010 年:Oracle 公司收购了 Sun Microsystems,成为 MySQL 的新管理者。
- 当前:Oracle 继续开发和支持 MySQL,发布了具有显著功能增强的主要版本。2018 年发布的 MySQL 8.0 在功能和性能方面取得了重大飞跃。目前 MySQL 和 MariaDB 都被广泛使用。
设置开发环境
Section titled “设置开发环境”在开始之前,您应该对 SQL 概念有基本了解。为了获得一个现代化、隔离且可重现的开发设置,我们强烈建议使用 Docker。
使用 Docker(推荐)
Section titled “使用 Docker(推荐)”安装 Docker 后,您可以通过单个命令启动 MySQL 服务器:
# 此命令启动一个名为 'mysql-dev' 的 MySQL 8 服务器# 并设置 root 密码。数据将存储在 Docker 卷中。docker run --name mysql-dev -p 3306:3306 -e MYSQL_ROOT_PASSWORD=your_strong_password -d mysql:8.0这种方法避免了在本地机器上安装过多软件,并确保您的开发环境与生产环境保持一致。
或者,您可以直接从 MySQL 官方网站下载并安装适用于您的操作系统的 MySQL Community Server。您还需要一个命令行客户端或像 DBeaver 或 MySQL Workbench 这样的 GUI 工具来与服务器交互。