MySQL 学习教程

全面的 MySQL 数据库基础知识与性能优化指南

目录

1. MySQL 简介

MySQL 是世界上最受欢迎的开源关系型数据库管理系统之一,由瑞典 MySQL AB 公司开发,现在属于 Oracle 公司。

1.1 MySQL 的特点

1.2 应用场景

2. 安装与配置

2.1 下载与安装

从 MySQL 官网下载适合您操作系统的版本:

// Windows
下载 MySQL Installer 并按照向导安装

// Linux (Ubuntu)
sudo apt update
sudo apt install mysql-server

// macOS
brew install mysql

2.2 基本配置

配置文件位置:

安全提示

安装后请立即修改 root 密码,并删除测试数据库和匿名用户。

3. 基础概念

3.1 数据库基础

3.2 MySQL 架构

MySQL 采用客户端/服务器架构,主要组件包括:

4. SQL 基础

4.1 数据定义语言(DDL)

-- 创建数据库
CREATE DATABASE mydb;

-- 创建表
CREATE TABLE users (
    id INT PRIMARY KEY AUTO_INCREMENT,
    username VARCHAR(50) NOT NULL,
    email VARCHAR(100) UNIQUE,
    created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);

-- 修改表结构
ALTER TABLE users ADD COLUMN age INT;

-- 删除表
DROP TABLE users;

4.2 数据操作语言(DML)

-- 插入数据
INSERT INTO users (username, email) VALUES ('john', 'john@example.com');

-- 更新数据
UPDATE users SET age = 25 WHERE username = 'john';

-- 删除数据
DELETE FROM users WHERE id = 1;

4.3 数据查询语言(DQL)

-- 基本查询
SELECT * FROM users WHERE age > 18;

-- 连接查询
SELECT u.username, o.order_date
FROM users u
JOIN orders o ON u.id = o.user_id;

-- 分组查询
SELECT country, COUNT(*) as user_count
FROM users
GROUP BY country
HAVING user_count > 100;

5. 数据类型与设计

5.1 常用数据类型

类型 说明 使用场景
INT 整数类型 ID、年龄、数量等
VARCHAR 变长字符串 用户名、标题等
TEXT 长文本 文章内容、描述等
DATETIME 日期时间 创建时间、更新时间等

5.2 数据库设计原则

6. 索引优化

6.1 索引类型

6.2 索引优化策略

索引使用建议
  • 频繁查询的字段建立索引
  • 避免过多索引(影响写入性能)
  • 选择区分度高的列建立索引
  • 考虑索引的选择性
  • 注意索引的维护成本

7. 查询优化

7.1 EXPLAIN 分析

EXPLAIN SELECT * FROM users WHERE age > 18;

关注以下指标:

7.2 查询优化技巧

8. 性能调优

8.1 服务器参数优化

8.2 性能监控

-- 查看当前连接
SHOW PROCESSLIST;

-- 查看状态变量
SHOW GLOBAL STATUS;

-- 查看系统变量
SHOW VARIABLES;

9. 备份与恢复

9.1 备份策略

9.2 备份命令

-- 使用 mysqldump 备份
mysqldump -u root -p database_name > backup.sql

-- 恢复数据库
mysql -u root -p database_name < backup.sql

10. 安全管理

10.1 用户管理

-- 创建用户
CREATE USER 'username'@'localhost' IDENTIFIED BY 'password';

-- 授权
GRANT SELECT, INSERT ON database.* TO 'username'@'localhost';

-- 撤销权限
REVOKE SELECT ON database.* FROM 'username'@'localhost';

10.2 安全最佳实践

11. 最佳实践

11.1 开发规范

11.2 运维建议

注意事项

在进行任何重要操作前,请确保已经做好备份,并在测试环境验证过。