亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

MySQL索引的基本語法

 更新時間:2020年08月13日 10:06:43   作者:技能錦囊  
這篇文章主要介紹了MySQL索引的基本語法,幫助大家更好的理解和學(xué)習(xí)MySQL,感興趣的朋友可以了解下

     索引是排好序的數(shù)據(jù)結(jié)構(gòu)!可以用在 where 條件查找的字段,和order by 排序的字段,有了索引,便可以快速地定位數(shù)據(jù)所在的物理地址并找出來。

索引的分類

1.普通索引(normal):沒有任何約束,主要用于提高查詢效率

2.唯一索引(UNIQUE):在普通索引的基礎(chǔ)上增加了數(shù)據(jù)唯一性的約束,可以有多個

3.主鍵索引(primary key):主鍵索引在唯一索引的基礎(chǔ)上增加了不為空的約束,也就是 NOT NULL+UNIQUE,只能有一個

4.全文索引(FULLTEXT):MySQL 自帶的全文索引只支持英文。

一般使用專門的全文搜索引擎,比如 ES(ElasticSearch)

創(chuàng)建索引

#普通索引

ALTER TABLE 表名 ADD INDEX 索引名 (column_list);

#唯一索引

ALTER TABLE 表名 ADD UNIQUE 索引名(column_list);

#主鍵索引

ALTER TABLE 表名 ADD PRIMARY KEY 索引名(column_list);

#全文索引(字符串?dāng)?shù)據(jù)類型)

ALTER TABLE 表名 ADD fulltext 索引名(column_list);  

#查看索引

show index from student \G

這里用\G 代替分號結(jié)束符;可以格式化輸出數(shù)據(jù)信息。

#刪除索引

修改表的方式刪除索引

ALTER TABLE 表名 DROP INDEX 索引名;

刪除主鍵索引

ALTER TABLE 表名 DROP PRIMARY KEY;

索引列為一列時為單一索引;
多個列組合在一起創(chuàng)建的索引叫做聯(lián)合索引

什么情況下可以創(chuàng)建索引?

1.字段的數(shù)值有唯一性的限制,比如id

2.頻繁作為 WHERE 查詢條件的字段,尤其在數(shù)據(jù)表大的情況下

如果在數(shù)據(jù)量非常大的情況下,沒有 WHERE 條件過濾是非常可怕的。

3.需要經(jīng)常 GROUP BY 和 ORDER BY 的列

4.UPDATE、DELETE 的 WHERE 條件列,一般也需要創(chuàng)建索引

原理是因?yàn)槲覀冃枰雀鶕?jù) WHERE 條件列檢索出來這條記錄,然后再對它進(jìn)行更新或刪除,非索引字段更新數(shù)據(jù)效果更明顯;

如果索引太多了,在更新數(shù)據(jù)的時候,如果涉及到索引更新,就會造成負(fù)擔(dān)。

5.DISTINCT 字段需要創(chuàng)建索引

6.做多表 JOIN 連接操作時,創(chuàng)建索引需要注意以下的原則

連接表的數(shù)量盡量不要超過 3 張,每增加一張表就相當(dāng)于增加了 一次嵌套的循環(huán),數(shù)量級增長會非???對用于連接的字段創(chuàng)建索引,并且該字段在多張表中的類型必須一致。

什么時候不需要創(chuàng)建索引?

索引的價值是快速定位,如果起不到定位的字段通常是不需要創(chuàng)建索引的

1.WHERE 條件(包括 GROUP BY、ORDER BY)里用不到的字段不需要創(chuàng)建索引;

2.表記錄太少,比如少于 1000 行,那么是不需要創(chuàng)建索引;

3.字段中如果有大量重復(fù)數(shù)據(jù),也不用創(chuàng)建索引,比如性別字段;

4.頻繁更新的字段不一定要創(chuàng)建索引。因?yàn)楦聰?shù)據(jù)的時候,也需要更新索引,如果索引太多,在更新索引的時候也會造成負(fù)擔(dān),從而影響效率;

什么情況下索引失效?

1.如果索引列進(jìn)行了表達(dá)式計算,使用函數(shù),則會失效

2.在 WHERE 子句中,如果在 OR 前的條件列進(jìn)行了索引,而在 OR 后的條件列沒有進(jìn)行索引,那么索引會失效。

3.當(dāng)我們使用 LIKE 進(jìn)行模糊查詢的時候,表達(dá)式不能是 % 開始

4.索引列盡量設(shè)置為 NOT NULL 約束

判斷索引列是否為 NOT NULL,往往需要走全表掃描,因此我們最好在設(shè)計數(shù)據(jù)表的時候就將字段設(shè)置為 NOT NULL 約束比如你可以將 INT 類型的字段,默認(rèn)值設(shè)置為 0。將字符類型的默認(rèn)值設(shè)置為空字符串 ('')

以上就是MySQL索引的基本語法的詳細(xì)內(nèi)容,更多關(guān)于MySQL索引語法的資料請關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • 如何恢復(fù)Mysql數(shù)據(jù)庫的詳細(xì)介紹

    如何恢復(fù)Mysql數(shù)據(jù)庫的詳細(xì)介紹

    這里說的MySql恢復(fù)數(shù)據(jù)庫,是指沒有通過正常備份的情況下,通過Mysql保存的數(shù)據(jù)文件如何恢復(fù)數(shù)據(jù)庫
    2013-09-09
  • MySQL中的if和case語句使用總結(jié)

    MySQL中的if和case語句使用總結(jié)

    這篇文章主要介紹了MySQL中的if和case語句使用總結(jié),本文講解了IF語句作為表達(dá)式和流程控制語句使用實(shí)例,需要的朋友可以參考下
    2015-02-02
  • 如何選擇合適的MySQL存儲引擎

    如何選擇合適的MySQL存儲引擎

    MySQL有多種存儲引擎,MyISAM、InnoDB、MERGE、MEMORY(HEAP)、BDB(BerkeleyDB)、EXAMPLE、FEDERATED、ARCHIVE、CSV、BLACKHOLE。
    2011-09-09
  • MySQL多線程復(fù)制遇到Error_code: 1872的解決方案

    MySQL多線程復(fù)制遇到Error_code: 1872的解決方案

    本文給大家分享的是在使用mysql主從復(fù)制的時候遇到Error_code: 1872錯誤的解決方法,非常的簡單,有需要的小伙伴可以參考下
    2016-09-09
  • MySQL如何使用使用Xtrabackup進(jìn)行備份和恢復(fù)

    MySQL如何使用使用Xtrabackup進(jìn)行備份和恢復(fù)

    Xtrabackup是由Percona開發(fā)的一個開源軟件,可實(shí)現(xiàn)對InnoDB的數(shù)據(jù)備份,支持在線熱備份(備份時不影響數(shù)據(jù)讀寫)。本文講解如何使用該工具進(jìn)行備份和恢復(fù)
    2021-06-06
  • mysql 數(shù)據(jù)插入和更新及刪除詳情

    mysql 數(shù)據(jù)插入和更新及刪除詳情

    這篇文章主要介紹了mysql 數(shù)據(jù)插入和更新及刪除,文章圍繞mysql 數(shù)據(jù)插入和更新及刪除的相關(guān)資料展開內(nèi)容,需要的朋友可以參考以下文章的具體內(nèi)容
    2021-10-10
  • MySQL5.7 如何通過邏輯備份遷移到GreatSQL及注意事項(xiàng)

    MySQL5.7 如何通過邏輯備份遷移到GreatSQL及注意事項(xiàng)

    在將數(shù)據(jù)庫從MySQL 5.7遷移到GreatSQL8.0.32時,由于數(shù)據(jù)量較小且關(guān)注安全性,決定使用mysqldump執(zhí)行邏輯備份,并將數(shù)據(jù)導(dǎo)入GreatSQL,這篇文章主要介紹了MySQL5.7 通過邏輯備份遷移到GreatSQL注意事項(xiàng),需要的朋友可以參考下
    2024-06-06
  • 親手教你怎樣創(chuàng)建一個簡單的mysql數(shù)據(jù)庫

    親手教你怎樣創(chuàng)建一個簡單的mysql數(shù)據(jù)庫

    數(shù)據(jù)庫是存放數(shù)據(jù)的“倉庫”,維基百科對此形象地描述為“電子化文件柜”,這篇文章主要介紹了親手教你怎樣創(chuàng)建一個簡單的mysql數(shù)據(jù)庫,需要的朋友可以參考下
    2022-11-11
  • Mysql update多表聯(lián)合更新的方法小結(jié)

    Mysql update多表聯(lián)合更新的方法小結(jié)

    這篇文章主要介紹了Mysql update多表聯(lián)合更新的方法小結(jié),通過實(shí)例代碼給大家介紹了mysql多表關(guān)聯(lián)update的語句,感興趣的朋友跟隨小編一起看看吧
    2020-02-02
  • 寶塔面板mysql無法啟動問題的分析和解決

    寶塔面板mysql無法啟動問題的分析和解決

    在使用寶塔linux面板一鍵安裝LNMP的是,數(shù)據(jù)庫mysql始終無法啟動,查查找找用了幾個小時,問題終于解決了,下面這篇文章主要給大家介紹了關(guān)于寶塔面板mysql無法啟動問題的分析和解決方法,需要的朋友可以參考下
    2023-04-04

最新評論