MySQL进阶——提高查询效率之添加索引的全部方式

        索引提高查询效率,本文介绍优化查询时添加索引的多种方式。

本文目录

      • 一、创建表时添加索引
      • 二、使用 ALTER TABLE 语句添加索引
      • 三、使用 CREATE INDEX 语句添加索引

一、创建表时添加索引

在使用 CREATE TABLE 语句创建表的同时,可以为表中的列添加索引。适用于在设计表结构时就确定需要添加索引的情况。

语法如下:

CREATE TABLE table_name (
    column1 datatype,
    column2 datatype,
    ...
    -- 普通索引
    INDEX index_name (column_name),
    -- 唯一索引
    UNIQUE INDEX unique_index_name (column_name),
    -- 主键索引
    PRIMARY KEY (column_name),
    -- 全文索引
    FULLTEXT INDEX fulltext_index_name (column_name)
);
CREATE TABLE users (
    id INT AUTO_INCREMENT,
    username VARCHAR(50),
    email VARCHAR(100),
    age INT,
    -- 为 username 列添加普通索引
    INDEX idx_username (username),
    -- 为 email 列添加唯一索引
    UNIQUE INDEX idx_email (email),
    -- 为 id 列添加主键索引
    PRIMARY KEY (id)
);



二、使用 ALTER TABLE 语句添加索引

如果表已经创建好,后续发现需要添加索引,可以使用 ALTER TABLE 语句来为表中的列添加索引。

语法如下:

-- 添加普通索引
ALTER TABLE table_name ADD INDEX index_name (column_name);
-- 添加唯一索引
ALTER TABLE table_name ADD UNIQUE INDEX unique_index_name (column_name);
-- 添加全文索引
ALTER TABLE table_name ADD FULLTEXT INDEX fulltext_index_name (column_name);
-- 添加主键索引
ALTER TABLE table_name ADD PRIMARY KEY (column_name);
-- 为已存在的 users 表的 age 列添加普通索引
ALTER TABLE users ADD INDEX idx_age (age);



三、使用 CREATE INDEX 语句添加索引

CREATE INDEX 语句专门用于在已存在的表上添加索引,不能用于添加主键索引(主键索引需使用 ALTER TABLE 或在创建表时指定)。

语法如下:

-- 添加普通索引
CREATE INDEX index_name ON table_name (column_name);
-- 添加唯一索引
CREATE UNIQUE INDEX unique_index_name ON table_name (column_name);
-- 添加全文索引
CREATE FULLTEXT INDEX fulltext_index_name ON table_name (column_name);
-- 为 users 表的 username 列添加普通索引
CREATE INDEX idx_username ON users (username);

需要注意的是,虽然索引可以提高查询效率,但会增加数据插入、更新和删除的开销,同时会占用一定的存储空间。



← 上一篇 Java进阶——常用类及常用方法详解
记得点赞、关注、收藏哦!
下一篇 Java进阶——数组超详细整理 →

你可能感兴趣的:(MySQL,sql,mysql)