更新時間:2020-02-24 來源:黑馬程序員 瀏覽量:
1、為什么要學索引
思考:在一本字典中,如何查找一個字?
分析: 一般的應用系統對比數據庫的讀寫比例在10:1左右,而且插入操作和更新操作很少出現性能問題,遇到最多的,也是最容易出問題的,還是一些復雜的查詢操作,所以查詢語句的優化顯然是重中之重。
2、 什么是索引
索引相當于目錄結構,其內部有一定的算法,可以快速的幫我們定位到,相應的數據位置
3、索引的好處
當數據比較多的時候可以加快查詢的速度.
4、使用索引的原則
可以打開京東頁面
在經常需要搜索的列上,可以加快搜索的速度;
在經常用在連接的列上,這些列主要是一些外鍵,可以加快連接的速度;
在經常需要排序的列上創建索引,因為索引已經排序,這樣查詢可以 利用索引的排序,加快排序查詢時間;
在經常使用在WHERE子句中的列上面創建索引,加快條件的判斷速度。
5、索引的類型
primary key 主鍵索引保證數據的唯一性,而且不能為空,唯一標識數據庫表中的每條記錄
unique 唯一索引 防止數據出現重復
index(key) 普通索引 僅僅只是為了提高查詢的速度
fulltext 全文索引(不支持中文)
6、索引的使用
(1)建表的時候創建索引
create table study(
id mediumint not null auto_increment,
sn char(10) not null default 0 comment '學號',
xing varchar(10) not null default '' comment '姓',
ming varchar(10) not null default '' comment '名',
primary key(id),
unique sn(sn),
index x_m(xing,ming)
)engine=MyISAM default charset=utf8;
查看創建成功的表的結構
show create table study \G
使用desc查看表的結構
除了主鍵索引,其他索引設置的同時可以給其起一個”名稱”,名稱不設置與該索引字段名稱一致
給存在的數據表增加索引
alter table 表名 add primary key (id);
alter table 表名 add unique key [索引名稱] (字段);
alter table 表名 add key [索引名稱] (字段);
alter table 表名 add fulltext key [索引名稱] (字段);
這里的索引名稱都是可以不寫的,那么默認就是字段的名稱。
a 先添加一張表
create table study1(
id mediumint not null,
sn char(10) not null default 0 comment '學號',
xing varchar(10) not null default '' comment '姓',
ming varchar(10) not null default '' comment '名'
)engine=myisam default charset='utf8';
b 為已經創建好的表增加索引
alter table study1 add primary key(id); // 主鍵索引
alter table study1 add unique sn(sn); // 給學號增加唯一索引
alter table study1 add index x_m(xing,ming); // 給xingming添加
復合索引
c 查看已經建立好的索引:
猜你喜歡: