Mysql从入门到精通的实战指南

MySQL是一个开放源代码的数据库管理系统(DBMS),是由MySQL AB公司开发、发布并支持的。MySQL是一个跨平台的开源关系型数据库管理系统,广泛地应用在Internet上的中小型网站开发中。 概念 SQL语句分类 数据定义语言DDL(Data Ddefinition Language):CREATE,DROP,ALTER 主要为以上操作 即对逻辑结构等有操作的,其中包括表结构,视图和索引。 数据查询语言DQL(Data Query Language):SELECT 这个较为好理解 即查询操作,以select关键字。各种简单查询,连接查询等 都属于DQL。 数据操纵语言DML(Data Manipulation Language):INSERT,UPDATE,DELETE 主要为以上操作 即对数据进行操作的,对应上面所说的查询操作 DQL与DML共同构建了多数初级程序员常用的增删改查操作。而查询是较为特殊的一种 被划分到DQL中。 数据控制功能DCL(Data Control Language):GRANT,REVOKE,COMMIT,ROLLBACK 主要为以上操作 即对数据库安全性完整性等有操作的,可以简单的理解为权限控制等。 数据库三大范式是什么 第一范式:每个列都不可以再拆分。 第二范式:在第一范式的基础上,非主键列完全依赖于主键,而不能是依赖于主键的一部分。 第三范式:在第二范式的基础上,非主键列只依赖于主键,不依赖于其他非主键。 在设计数据库结构的时候,要尽量遵守三范式,如果不遵守,必须有足够的理由。比如性能。事实上我们经常会为了性能而妥协数据库的设计。 一 存储引擎 1.1 存储引擎 MySQL 8.0支持的存储引擎有InnoDB、MyISAM、Memory、Merge、Archive、Federated、CSV、BLACKHOLE等。 MySQL常用存储引擎包括: InnoDB(默认):支持事务、外键、行级锁,适合高并发场景。 MyISAM:不支持事务和外键,表级锁,读写性能较高(适合读多写少)。 Memory:数据存储在内存中,速度极快,适合临时表。 Archive:只支持INSERT和SELECT,压缩存储,适合历史数据归档。 核心区别: 特性 InnoDB MyISAM 事务支持 ✅ ❌ 外键 ✅ ❌ 锁机制 行级锁 表级锁 索引与数据 聚簇索引(索引和数据存储在一起) 非聚簇索引 崩溃恢复 支持 不支持 InnoDB与MyISAM对比: InnoDB主键索引直接存储数据,MyISAM索引只存储数据地址。 InnoDB的二级索引叶子节点存储主键值,MyISAM存储数据地址。 MyISAM:不支持事务和外键,支持表级锁,查询速度快,适合读多写少场景(如日志表),崩溃后恢复困难。 InnoDB:支持事务(ACID)、外键和行级锁,有崩溃恢复能力(依赖redo日志),适合写操作频繁的场景(如订单表),性能略低于MyISAM但安全性更高。 1.2 日志文件 常用的日志文件包括错误日志、二进制日志、查询日志、慢查询日志和InnoDB引擎在线Redo日志等。 ...

2025-07-21 · FLY的狐狸