數據庫實驗四 索引創建與管理操作
- 一、實驗目的
- 二、設計性實驗
- 三、觀察與思考
一、實驗目的
(1) 理解索引的概念與類型。
(2) 掌握創建、更改、刪除索引的方法。
(3) 掌握維護索引的方法。
二、設計性實驗
在數據庫job下創建worklnfo表。創建表的同時在id字段上創建名為index_id的唯一性索引,而且以降序的格式排列。Worklnfo表內容如表所示。
請完成如下操作:
1、使用 CREATE INDEX 語句為name字段創建長度為10的索引index_name。
create index index_name on workinfo(name(10));
2、使用 ALTER TABLE 語句在type和address上創建名為index_t的索引。
alter table workinfo add index index_t(type,address);
3、使用 ALTER TABLE 語句將workInfo表的存儲引擎更改為MyISAM類型。
alter table workinfo ENGINE=MYISAM;
4、使用 ALTER TABLE 語句在extra字段上創建名為index_ext的全文索引。
alter table workinfo add fulltext index index_ext(extra);
5、使用 DROP 語句刪除workInfo表的惟一性索引index_id。
drop index index_id on workinfo;
三、觀察與思考
(1) 數據庫中索引被破壞后會產生什么結果?
答:查詢速度變慢并且不能使用delete操作
(2) 視圖上能創建索引嗎?
答:不能,視圖本身沒有索引的概念
(3) MySQL中組合索引創建的原則是什么?
答:
1、 對于查詢頻率高的字段創建索引;
2、 對排序、分組、聯合查詢頻率高的字段創建索引;
3、 索引的數目不宜太多
4、若在實際中,需要將多個列設置索引時,可以采用多列索引
5.選擇唯一性索引;
6、盡量使用數據量少的索引
7、盡量使用前綴來索引
8、刪除不再使用或者很少使用的索引
(4) 主鍵約束和唯一約束是否會默認創建唯一索引?
答:會,主鍵約束的索引鍵在定義上不允許為NULL,而唯一約束的索引鍵在定義上允許為NULL。