MySQL 核心解析:索引、设计、事务与视图
后端开发里,MySQL 是数据存储的基石。要想让系统既快又稳,数据完整性和一致性不能丢,就得把索引、数据库设计、事务和视图这几个核心点吃透。咱们不整虚的,直接结合实战场景拆解这些模块的逻辑和最佳实践。
一、索引:查询加速的关键
索引本质上是特殊的数据结构(比如 B+ 树),能让数据库快速定位数据,避免全表扫描带来的性能损耗。它是优化查询效率最直接的'加速器'。
1. 索引的核心类型
普通索引是最基础的,没唯一性约束,纯粹为了加速查询。
-- 直接创建
CREATE INDEX idx_username ON user (username);
-- 修改表结构添加
ALTER TABLE user ADD INDEX idx_username (username);
-- 建表时指定
CREATE TABLE user (
id INT NOT NULL,
username VARCHAR(16) NOT NULL,
INDEX idx_username (username)
);
删除也很简单:DROP INDEX idx_username ON user;
唯一索引要求列值唯一(允许 NULL),适合手机号、邮箱这种必须唯一的字段。
-- 创建唯一索引
CREATE UNIQUE INDEX idx_phone ON user (phone);
-- 修改表结构添加
ALTER TABLE user ADD UNIQUE idx_phone (phone);
主键索引是一种特殊的唯一索引,默认非空,是表的唯一标识。一张表只能有一个。
-- 建表时指定主键
CREATE TABLE user (
id INT NOT NULL PRIMARY KEY AUTO_INCREMENT,
username VARCHAR(16) NOT NULL
);
MODIFY id ;
(id);
;


