mysql索引:索引类型优缺点,索引操作

 什么是索引:创建在表上对数据库表中一列或多列的值进行排序的一种结构

索引:优缺点

优点

  • 加快查询速度
  • 降低了排序的时间
  • 加快了表间连接速度

缺点

  • 存储索引占用磁盘空间
  • 降低了插入和更新的速度

索引类型:

1、聚集索引:

  • 又叫主键索引

特点:   

  按主键排序   

  叶子节点保存一行记录的所有内容

优点:

  如果根据主键查询,不需要回表

缺点:   

  占用存储空间大   

  主键的值不规则,会造成频繁的页分裂,影响性能

 

 

 

 

 

 

 

2、非聚集索引:

  • 唯一索引
  • 普通索引(单列索引)
  • 组合索引(多列索引):复合索引、联合索引

 特点:

   叶子节点保存的是主键的值和索引列的值

 优点:

   占用存储空间少

   一个表可以创建多个非聚集索引

 缺点:

   如果非索引覆盖,就需要回表查询

 

 

 

 

 

 

 

索引操作

查看索引:

show index from 表名;

创建索引:

索引创建三种方式

  1、create table: 建表的时候创建

  2、create   index:在已经存在的表上创建

  3、alter table :创建

以下命令语句分别展示创建主键索引(PRIMA RY KEY) ,联合索引 (UNIQUE)和普通索引 (INDEX)的方法。

方式一:alter table 创建

alter table 表名  add   index    索引名  列名;
    举例:alter table 表名 add  index index_tid(tid);    #创建普通索引;创建一个名为index_tid的普通索引,索引列是tid,下同
alter table 表名 add unique 索引名 列名;
    举例:alter table 表名 add unique index index_tid(tid);    #创建唯一索引
alter table 表名 add primary key 索引名 列名;
    举例:alter table 表名 add primary key index index_tid(tid);    #创建主键索引
方式二:在已经存在的表上创建
create   index  索引名  on  表名 列名; 
    举例:create index index_tid on 表名(tid)    #创建普通索引
create unique index 索引名 on 表名 列名;
    举例:create unique index index_tid on 表名(tid)   #创建唯一索引
方式三:建表的时候创建
create table 表名(
tid int,
tname char(20),
index index_tname(tname)   //普通索引名称tname
)

删除索引:

drop index index_tid on 表名;  
    举例: drop index index_tid  on 表名
alter table 表名 drop index 索引名;
    举例:alter table 表名 drop index index_tid;

 

 

 

posted on 2024-06-29 12:54  拾句  阅读(8)  评论(0编辑  收藏  举报