大白糖奶兔的Blog
大白糖奶兔的Blog
数据库第三章-索引的建立和删除

索引的建立和删除

  • 建立索引的目的:加快查询速度
  • 谁可以建立索引
    DBA或表的属主(建立表的人)
  • DBMS自动建立以下列上的索引
    Primary key
    Unique
  • 谁维护索引
    DBMS自动完成
  • 使用索引
  • 索引的代价:占用空间,降低数据更新速度
  • 索引是关系数据库的内部实现技术,属于内模式范畴
    DBMS自动选择是否使用索引以及使用哪些索引
    索引文件相当于目录,占用一定的磁盘空间,表中的文件变化,索引也会发生变化1

创建索引

语句格式

create [unique] [clustered] index <索引名>
on <表名>(<列名>[<次序>] [,<列名>[<次序>]]...);
  • unique:唯一索引这一列上的值唯一,和唯一约束作用差不多
  • clustered:聚簇索引,表里的实际排列顺序,只能有一个,新的会替换旧的
  • <索引名>:建立的索引文件的文件名
  • on<表名>:针对哪个表建立索引
  • <列名>:按照哪列建立索引
  • <次序>:asc或desc
  • 如果有多列索引,排序先按第一列排序,再按第二列......
https://yczbest.cn/wp-content/uploads/2020/08/wp_editor_md_2dbdc010c6831a48e3ffef49df581e8b.jpg
create clustered index stusname
on student(sname);

在student表的sname列创建名为stuname索引,默认升序(asc)
- 在最经常查询的列上建立聚簇索引以提高查询效率
- 一个基本表上最多只能建立一个聚簇索引
- 经常更新的列不易建立聚簇索引

https://yczbest.cn/wp-content/uploads/2020/08/wp_editor_md_66af9f78698bda423cf793efe2e46b95.jpg

若想提高此查询的查询速度
应按照where子句后的查询条件建立student表中sdept列的索引,用来提高查询速度

https://yczbest.cn/wp-content/uploads/2020/08/wp_editor_md_aba5369285d0ad6cca71d8e589d4eec7.jpg

两个表做连接需要在
student的sno
和sc的sno创建索引
需要写两个create语句

删除索引

语句格式

drop index <索引名>;
https://yczbest.cn/wp-content/uploads/2020/08/wp_editor_md_66616c4124e20a57abaf6888a22d9ac0.jpg
drop index stusname;

发表评论

textsms
account_circle
email

大白糖奶兔的Blog

数据库第三章-索引的建立和删除
索引的建立和删除 建立索引的目的:加快查询速度 谁可以建立索引 DBA或表的属主(建立表的人) DBMS自动建立以下列上的索引 Primary key Unique 谁维护索引 DBMS自动完成 使用索引 索引…
扫描二维码继续阅读
2020-08-11
Title - Artist
0:00