溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

快速入門MySQL數(shù)據(jù)庫索引的基礎(chǔ)知識

發(fā)布時間:2020-05-29 13:59:31 來源:網(wǎng)絡(luò) 閱讀:316 作者:三月 欄目:MySQL數(shù)據(jù)庫

本文主要給大家介紹快速入門MySQL數(shù)據(jù)庫索引的基礎(chǔ)知識,文章內(nèi)容都是筆者用心摘選和編輯的,具有一定的針對性,對大家的參考意義還是比較大的,下面跟筆者一起了解下快速入門MySQL數(shù)據(jù)庫索引的基礎(chǔ)知識吧。

------------------------索引的概念----------------------------

⑴數(shù)據(jù)庫中的索引與書籍中的目錄類似
在一本書,無須閱讀整本書,利用目錄就可以快速查找所需信息
書中的目錄是一個詞語列表,其中著名了包含個此的頁碼
⑵數(shù)據(jù)庫索引
在數(shù)據(jù)庫中,索引使數(shù)據(jù)庫程序無須對整個表進行掃描,就可以在其中找到所需數(shù)據(jù)
數(shù)據(jù)庫中的索引是某一個表中一列或者若干列值的集合,以及物理標識這些值的數(shù)據(jù)頁的邏輯指針清單

優(yōu)點:加快查詢速度、檢索速度,可以準確的定位,不需要全篇去找


-------------------------索引的作用------------------------


⑴設(shè)置了合適的索引之后,數(shù)據(jù)庫利用各種快速的定位技術(shù),能夠大大加快查詢速率
⑵特別是當表很大時,或者查詢設(shè)計到多表時,使用索引可使查詢加快千倍
⑶可以降低數(shù)據(jù)庫的IO(輸入輸出)成本,并且索引還可以降低數(shù)據(jù)庫的排序成本
(讀的時候會消耗內(nèi)存)
⑷通過創(chuàng)建唯一性索引保證數(shù)據(jù)表數(shù)據(jù)的唯一性
⑸可以加快表與表之間的連接(可以把相關(guān)的字段當做一個索引)
⑹在使用分組的排序時,可大大減少分組和排序時間

 
----------------------索引的分類--------------------------

⑴普通索引
這是最基本的索引類型,而且它沒有唯一性之類的限制

⑵唯一性索引
這種索引和前面"普通索引"基本相同,但有一個區(qū)別:索引列的所有值都只能出現(xiàn)一次,即必須唯一

⑶主鍵
這是一種唯一性索引,但它必須指定為"PRIMARY KEY"

⑷全文索引
MySQL3.23.23版開始支持全文索引和全文檢索。在MySQL中,全文索引的索引類型為FULLTEXT,全文索引可以再VARCHAR或者TEXT類型的列上創(chuàng)建


------------------創(chuàng)建索引的原則依據(jù)-----------------

⑴表的主鍵、外鍵必須有索引

⑵數(shù)據(jù)量超過300行的表應(yīng)該有索引

⑶經(jīng)常與其他表進行連接的表,在連接字段上應(yīng)該建立索引

⑷唯一性太差的字段不適合建立索引(重復(fù)性大,大眾化,重復(fù)很多)

⑸更新太頻繁地字段不適合創(chuàng)建索引

⑹經(jīng)常出現(xiàn)在where子句中的字段,特別是大表的字段,應(yīng)該建立索引

⑺索引應(yīng)該建在選擇性高的字段上

⑻索引應(yīng)該建在小字段上,對于大的文本字段甚至超長字段,不要建索引


-----------------創(chuàng)建索引的方法--------------------


根據(jù)企業(yè)需求選擇了合適的索引之后,可使用CREATE INDEX創(chuàng)建索引

CREATE INDEX加上各個索引關(guān)鍵字便可創(chuàng)建各個類型的索引


PS:首先需要進入數(shù)據(jù)庫


⑴創(chuàng)建普通索引

語法結(jié)構(gòu):create index (索引的名字)on tablename (列的列表)


舉例:

mysql> create index salary_index on IT_salary(薪資);                    #創(chuàng)建IT_salary 的索引(默認普通索引),索引名稱為salary_index

mysql> show index from IT_salary;                                                 #從IT_index數(shù)據(jù)表中,查看索引


⑵創(chuàng)建唯一性索引

語法結(jié)構(gòu):create unique index (索引名字)on tablename (表的名字)

舉例:

mysql> create unique index salary_unique on IT_salary(姓名);              #創(chuàng)建IT_salary 的唯一索引,索引名稱為salary_unique  

mysql> show index from IT_salary;                                                              #從IT_index數(shù)據(jù)表中,查看索引


⑶創(chuàng)建主鍵索引,有兩種方式,一種實在創(chuàng)建表的同時創(chuàng)建主鍵,主鍵索引自動創(chuàng)建,

命令格式:

create table tablename([…],primary ke(表的名字));                             #創(chuàng)建表的時候,添加了主鍵,也就是自動創(chuàng)建了

alter table tablename add primary key(列的列表);                           #創(chuàng)建之后忘記添加主鍵,用此種方法


附加:

更改表結(jié)構(gòu)

添加表 主鍵,命令格式:alter table <表名> add primary key(id);


1.增加一個列:

alter table info add column age int;

#更改表    info  增加    列    年齡 類型;


2.刪除一個列:

  alter table info drop column age;

#更改表      info  刪除    列      年齡;


主鍵索引例子

mysql> alter table IT_salary add primary key(員工ID);


⑷索引查看

show index from tablename;                  

show keys from tablename;


查看索引例子

mysql> show index from IT_salary;       

mysql> show keys from IT_salary;

看完以上關(guān)于快速入門MySQL數(shù)據(jù)庫索引的基礎(chǔ)知識,很多讀者朋友肯定多少有一定的了解,如需獲取更多的行業(yè)知識信息 ,可以持續(xù)關(guān)注我們的行業(yè)資訊欄目的。

向AI問一下細節(jié)

免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI