日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

mysql,简单介绍一下索引

發布時間:2025/7/25 数据库 45 豆豆
生活随笔 收集整理的這篇文章主要介紹了 mysql,简单介绍一下索引 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

漢字很多,人力有時盡,人不可能記住所有的字,為了解決這個問題,于是有了字典。數據庫里的數據很多,為了方便檢索,于是有了索引。

索引,是一種數據結構,在這種數據結構中實現了高級的查找算法,索引可以幫助我們高效地獲取數據,提高查詢效率。

?

既然索引有這樣的好處,那我們是不是每個字段都該建立索引呢?

當然是不,物極必反,索引是需要占用空間的,而且索引本身也不小,不能存儲在內存空間,是存放在磁盤中的。

如果每個字段都建立索引,后果可想而知。

?

討論索引的時候,如果沒有特別的指明類型,一般都是B樹索引。BTree索引可以查閱相關資料了解下,不贅述了。

除了B樹索引,另外還有哈希索引等。

?

索引有哪些分類?

1.單值索引

單值索引是指一個索引只包含一個字段,一個表可以創建多個單值索引,但也不宜過多。

2.唯一索引

主鍵創建后一定包含一個唯一索引;但唯一索引不一定是主鍵,允許有空值,一個表可以創建多個唯一索引。

3.復合索引

因為一個查詢一次至多只能使用一個索引,所以,如果都使用單值索引,在數據量較大的情況下,不能很好的區分數據, 于是引入了復合索引。

需要注意的是:復合索引是有順序的! 舉例說明一下。

例如,user表里有id,name,sex三個字段,并且我們創建了name+sex的復合字段。 select * from user where name=x and sex=x; 這個情況是允許使用上面的復合索引的。select * from user where name=x; 這個情況也是允許使用上面的復合索引的。select * from user where sex=x and name=x; 這種情況不允許使用,復合索引有順序就是指這個意思。select * from user where sex=x; 這種情況也不允許使用索引哦。 復合索引是遵循向左原則的,只要在查詢的時候,是按照復合索引從左到右的順序依次查詢 不管查詢條件是否完全滿足所有的符合索引的列,都可以使用部分的符合索引;

?

選擇哪些列創建索引?

1.查詢較為頻繁的字段應該創建索引; 2.唯一性太差的字段不應該創建索引,就算這個字段經常作為查詢條件; 3.更新頻繁的字段不應該創建索引,索引是需要維護成本的; 4.有where條件時才會走索引,所以如果這個列不會作為where的查詢條件,沒有必要為這個字段創建索引;

不走索引的情況

在以前的工作中,有一次發現在特殊的情況下,即使你創建了索引,并且也在where加上了索引條件,查詢過程中還是沒有走索引。例如: 1.使用不等于(!= 或者<>)的時候MySQL 無法使用索引 2.like 后面的字符當首位為通配符時不走索引;如 like "北%",這種情況是走索引的 like "%北",這種情況是不走索引的 3.索引字段 is null 不走索引; 4.索引字段前加了函數或參加了運算不走索引;

?

轉載于:https://www.cnblogs.com/tinyj/p/9861109.html

總結

以上是生活随笔為你收集整理的mysql,简单介绍一下索引的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。