白話Mysql索引

2021-09-07 18:53:13 字數 1970 閱讀 9714

一: 索引的優點

二: mysql索引型別

1. 普通索引

2.唯一索引

3.全文索引

4.主鍵索引

三: 建立表時宣告索引

1.索引看著挺高大上的乙個名字,說白了就是我們書最外面的目錄。

2.假如你用新華字典來查詢「張」這個漢字,不使用目錄的話,你可能要從新華字典的第一頁找到最後一頁,可能要花二個小時。字典越厚呢,你花的時間就越多。現在你使用目錄來查詢「張」這個漢字,張的首字母是z,z開頭的漢字從900多頁開始,有了這條線索,你查詢乙個漢字可能只要一分鐘,由此可見索引的重要性。

3.索引用於快速找出在某個列中有一特定值的行

4.不使用索引,mysql必須從第1條記錄開始然後讀完整個表直到找出相關的行。表越大,花費的時間越多。如果表中查詢的列有乙個索引,mysql能快速到達乙個位置去搜尋到資料檔案的中間,沒有必要看所有資料

5.當然索引也不易過多,索引越多寫入,修改的速度越慢。因為,寫入修改資料時,也要修改索引。

索引型別

功能說明

普通索引

最基本的索引,它沒有任何限制

唯一索引

某一行企用了唯一索引則不准許這一列的行資料中有重複的值。針對這一列的每一行資料都要求是唯一的

主鍵索引

它是一種特殊的唯一索引,不允許有空值。一般是在建表的時候同時建立主鍵索引,常用於使用者id。類似於書中的頁碼

全文索引

對於需要全域性搜尋的資料,進行全文索引

型別詳細說明

基本語法

alter table 表  add index(字段)

示例alter tablemoneyadd index(username);

示例解釋

為money表的username欄位增加索引

型別詳細說明

基本語法

alter table 表  add unique(字段)

示例alter tablemoneyadd unioue(email);

示例解釋

為money表的email欄位增加唯一索引

型別詳細說明

基本語法

alter table 表  add fulltext(字段)

示例alter tablemoneyadd fulltext(content);

示例解釋

為money表的content欄位增加全文索引

型別詳細說明

基本語法

alter table 表  add primary key(字段)

示例alter tablemoneyadd 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...

資料庫索引白話篇

索引 這個名字,想必大家都耳熟能詳了,眾所周知,索引最大的用途就是提公升資料庫的查詢速度。或許,你會說,我曾經自己動手按書上講的方法試驗了一番,可是沒有感覺有多大速度的提公升呢?這完全是可能的,因為索引就像是一門非常厲害的武功招式,如果我們想發揮其最大的功力,光憑招式的純熟是遠遠不夠的,我們還必須同...

資料庫索引白話篇

索引 這個名字,想必大家都耳熟能詳了,眾所周知,索引最大的用途就是提公升資料庫的查詢速度。或許,你會說,我曾經自己動手按書上講的方法試驗了一番,可是沒有感覺有多大速度的提公升呢?這完全是可能的,因為索引就像是一門非常厲害的武功招式,如果我們想發揮其最大的功力,光憑招式的純熟是遠遠不夠的,我們還必須同...