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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 人文社科 > 生活经验 >内容正文

生活经验

索引是建的越多越好吗?

發布時間:2023/11/28 生活经验 41 豆豆
生活随笔 收集整理的這篇文章主要介紹了 索引是建的越多越好吗? 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

索引是建的越多越好嗎?

明顯不是,有以下幾點:

  1. 數據量小的表不需要建立索引,建立會增加額外的索引開銷
  2. 不經常引用的列不要建立索引,因為不常用,即使建立了索引也沒有多大意義。對經常用于查詢的字段應該創建索引。
  3. 經常頻繁更新的列不要建立索引,因為肯定會影響插入或更新的效率
  4. 數據重復且分布平均的字段,因此他建立索引就沒有太大的效果(例如性別字段,是否上架等等,不適合建立索引)
  5. 數據變更需要維護索引,意味著索引越多維護成本越高。當對表中的數據進行增加、刪除、修改時,索引也需要動態的維護,降低了數據的維護速度。
  6. 更多的索引也需要更多的存儲空間,一個表中很夠創建多個索引,這些索引度會被存放到一個索引文件中(專門存放索引的地方)。

順便說一下索引的相關知識:

索引用于快速找出在某個列中有一特定值的行,不使用索引,MySQL必須從第一條記錄開始讀完整個表,直到找出相關的行,表越大,查詢數據所花費的時間就越多,所以索引還是很有用的,其中MySQL中的索引的存儲類型有兩種:BTREE、HASH,平時我們經常見到的基本都是b+樹。
MyISAM(非聚簇索引)和InnoDB(聚簇索引)存儲引擎:只支持BTREE索引, 也就是說默認使用BTREE,這也是我們經常見到的,不能夠更換MEMORY/HEAP存儲引擎:支持HASH和BTREE索引。(上面的聚簇索引和非聚簇索引,可以這么區分,聚簇索引的葉子節點就是數據節點,而非聚簇索引的葉子節點仍然是索引節點,只不過有指向對應數據塊的指針。)

索引我們分為四類來講 單列索引(普通索引,唯一索引,主鍵索引)、組合索引、全文索引、空間索引。這里我們只說說第一個和第二個。
單列索引:一個索引只包含單個列,但一個表中可以有多個單列索引。 這里不要搞混淆了。

  • 普通索引:MySQL中基本索引類型,沒有什么限制,允許在定義索引的列中插入重復值和空值,純粹為了查詢數據更快一點。
  • 唯一索引:索引列中的值必須是唯一的,但是允許為空值。
  • 主鍵索引:是一種特殊的唯一索引,不允許有空值。

組合索引:(也叫聯合索引(多列聯合))
在表中的多個字段組合上創建的索引,只有在查詢條件中使用了這些字段的左邊字段時,索引才會被使用,使用組合索引時遵循最左前綴集合。例子如下:
聯合索引 (a,b,c) 實際建立了 (a)、(a,b)、(a,b,c) 三個索引.
?

總結

以上是生活随笔為你收集整理的索引是建的越多越好吗?的全部內容,希望文章能夠幫你解決所遇到的問題。

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