一: 索引的優點
二: mysql索引型別
1. 普通索引
2.唯一索引
3.全文索引
4.主鍵索引
三: 建立表時宣告索引
1.索引看著挺高大上的乙個名字,說白了就是我們書最外面的目錄。
2.假如你用新華字典來查詢「張」這個漢字,不使用目錄的話,你可能要從新華字典的第一頁找到最後一頁,可能要花二個小時。字典越厚呢,你花的時間就越多。現在你使用目錄來查詢「張」這個漢字,張的首字母是z,z開頭的漢字從900多頁開始,有了這條線索,你查詢乙個漢字可能只要一分鐘,由此可見索引的重要性。
3.索引用於快速找出在某個列中有一特定值的行。
4.不使用索引,mysql必須從第1條記錄開始然後讀完整個表直到找出相關的行。表越大,花費的時間越多。如果表中查詢的列有乙個索引,mysql能快速到達乙個位置去搜尋到資料檔案的中間,沒有必要看所有資料。
5.當然索引也不易過多,索引越多寫入,修改的速度越慢。因為,寫入修改資料時,也要修改索引。
索引型別
功能說明
普通索引
最基本的索引,它沒有任何限制
唯一索引
某一行企用了唯一索引則不准許這一列的行資料中有重複的值。針對這一列的每一行資料都要求是唯一的
主鍵索引
它是一種特殊的唯一索引,不允許有空值。一般是在建表的時候同時建立主鍵索引,常用於使用者id。類似於書中的頁碼
全文索引
對於需要全域性搜尋的資料,進行全文索引
型別詳細說明
基本語法
alter table 表 add index(字段)
示例alter tablemoney
add index(username
);
示例解釋
為money表的username欄位增加索引
型別詳細說明
基本語法
alter table 表 add unique(字段)
示例alter tablemoney
add unioue(email
);
示例解釋
為money表的email欄位增加唯一索引
型別詳細說明
基本語法
alter table 表 add fulltext(字段)
示例alter tablemoney
add fulltext(content
);
示例解釋
為money表的content欄位增加全文索引
型別詳細說明
基本語法
alter table 表 add primary key(字段)
示例alter tablemoney
add primary key(id
);
示例解釋
為money表的id欄位增加主鍵索引
1.建立表時可在建立表語句後加上對應的型別即可宣告索引:
primary key(字段)
index [索引名] (字段)
fulltext [索引名] (字段)
unique[索引名] (字段)
注:中括號中的索引名,代表可選。
2.eg:
create table test (
id int not null ,
username varchar(20) not null ,
password int not null ,
content int not null ,
primary key (id),
index pw (password),
unique (username)
) engine = innodb;
白話mysql 小白白話技術之MYSQL索引
這是一篇關於mysql索引技術的白話介紹篇,不知道直白的語言是否有助於你更容易理解mysql的索引技術。什麼是索引,為什麼要用索引,要回答這倆個問題,我們可以先提出mysql使用上有什麼痛點,比如說mysql的效能,更具體舉例的話,比如說mysql的查詢效能,如何能更快的查詢到需要的資料,就是mys...
資料庫索引白話篇
索引 這個名字,想必大家都耳熟能詳了,眾所周知,索引最大的用途就是提公升資料庫的查詢速度。或許,你會說,我曾經自己動手按書上講的方法試驗了一番,可是沒有感覺有多大速度的提公升呢?這完全是可能的,因為索引就像是一門非常厲害的武功招式,如果我們想發揮其最大的功力,光憑招式的純熟是遠遠不夠的,我們還必須同...
資料庫索引白話篇
索引 這個名字,想必大家都耳熟能詳了,眾所周知,索引最大的用途就是提公升資料庫的查詢速度。或許,你會說,我曾經自己動手按書上講的方法試驗了一番,可是沒有感覺有多大速度的提公升呢?這完全是可能的,因為索引就像是一門非常厲害的武功招式,如果我們想發揮其最大的功力,光憑招式的純熟是遠遠不夠的,我們還必須同...