创建索引 === 创建索引通常有两种常见方式:建表时直接创建,或者在表已经存在之后再追加创建。 ### 创建表的时候创建索引 在 `CREATE TABLE` 中可以直接定义索引。 例如: ```sql CREATE TABLE article ( id int NOT NULL AUTO_INCREMENT, title varchar(100) NOT NULL, mobile varchar(20) DEFAULT NULL, content text, PRIMARY KEY (id), UNIQUE INDEX idx_user_mobile (mobile) ); ``` 这种写法适合在表设计阶段就已经明确查询需求和约束要求。 ### 在已经存在的表上创建索引 如果表已经建好,也可以后续追加索引。 使用 `CREATE INDEX`: ```sql CREATE INDEX index_user ON user(title); ``` 或者使用 `ALTER TABLE`: ```sql ALTER TABLE user ADD INDEX index_name (name); ``` 创建唯一索引: ```sql ALTER TABLE user ADD UNIQUE (creattime); ``` 创建全文索引: ```sql ALTER TABLE user ADD FULLTEXT (description); ``` 创建组合索引: ```sql ALTER TABLE user ADD INDEX name_city_age (name(10), city, age); ``` 这表示按照 `name`、`city`、`age` 三个字段建立一个联合索引。 ### 小结 建表时创建索引更适合整体设计,表存在后再建索引更适合性能优化阶段。普通索引、唯一索引、全文索引和组合索引,都是在不同业务场景下常见的选择。