有关MySQL中的索引
一:索引是什么
索引是一种数据结构,用于加快数据库查询的速度和性能。
一般情况下,在数据库中的数据结构为B+树.主键作为B+树组成数据的物理结构。
为了给其他列的数据加快查找速度,因此需要为其他列添加索引,添加的索引是为其他列创建树结构。
索引要创建在经常进行查询的列,为这些列进行索引。
索引的作用:
- 加速查询:索引可以显著提高
SELECT
查询的速度,尤其是在WHERE
、JOIN
、ORDER BY
和GROUP BY
等操作中。 - 唯一性约束:唯一索引可以确保某一列或列组合的值是唯一的。
- 优化排序和分组:索引可以帮助数据库快速完成排序和分组操作。
- 加速连接操作:在多表连接时,索引可以显著提高连接效率。
二:索引的使用与创建
2.1 有关索引的语法
普通索引是最常见的索引类型,用于加速对表中数据的查询。
创建索引的语法:
CREATE INDEX index_name
ON table_name (column1 [ASC|DESC], column2 [ASC|DESC], ...);
删除索引的语法:
DROP INDEX index_name ON table_name;
修改表结构添加索引:
ALTER TABLE table_name ADD INDEX index_name (column1, column2, ...);
参数说明:
index_name:索引的名字.
一般使用index_表名_列名
table_name:表名
column1:列名
案例:
create INDEX index_stu1_stu_name on stu1(stu_name);
2.2 创建表的时候直接指定索引
我们可以在创建表的时候,你可以在 CREATE TABLE 语句中直接指定索引,以创建表和索引的组合。
CREATE TABLE table_name (
column1 data_type,
column2 data_type,
...,
INDEX index_name (column1 [ASC|DESC], column2 [ASC|DESC], ...)
);
参数说明:
table_name:表名
column1:列名
ASC: