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

歡迎訪問 生活随笔!

生活随笔

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

数据库

mysql 更新索引_MySQL索引优化

發布時間:2023/12/19 数据库 23 豆豆
生活随笔 收集整理的這篇文章主要介紹了 mysql 更新索引_MySQL索引优化 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

MySQL支持的索引類型

B-tree索引的特點

1、B-tree索引以B+樹的結構存儲數據

2、B-tree索引能夠加快數據的查詢速度

3、B-tree索引更適合進行行范圍查找

B-tree結構圖

在什么情況下可以用到B樹索引?

1、全值匹配的查詢

例如我們有個訂單號,訂單號為 order_sn='98764322119900'

2、匹配最左前綴的查詢

3、匹配列前綴查詢

例如:order_sn like '9876%'

4、匹配范圍值的查找

例如:order_sn > '98764322119900' and order_sn < '98764322119999'

5、精確匹配左前列并范圍匹配另外一列

6、只訪問索引的查詢

Btree索引的使用限制

1、如果不是按著索引最左列開始查找,則無法使用索引

2、使用索引時不能跳過索引中的列

3、Not in 和 <> 操作無法使用索引

4、如果查詢中有某個列的查詢范圍,則其右邊所有列都無法使用索引

Hash索引的特點

1、Hash索引是基于Hash表實現的,只有查詢條件精確匹配Hash索引中的所有列時,才能夠使用到hash索引

2、對于Hash索引中的所有列,存儲引擎都會為每一行計算一個Hash碼,Hash索引中存儲的就是Hash碼

Hash索引的限制

1、使用hash索引需要二次查找

2、Hash索引無法用于排序

3、Hash索引不支持部分索引查找也不支持范圍查找

為什么要使用索引?

1、索引大大減少了存儲引擎需要掃描的數據量

2、索引可以幫助我們進行排序以比喵使用臨時表的IO消耗,提升MySQL的能力

3、索引可以把隨機I/O變為順序I/O

索引是不是越多越好?

場景:開發人員要求來創建更多的索引,問:“為何要添加更多的索引?”,答:”因為導入速度的時候很慢,以此來加快導入的速度!!!“,so..開發人員對索引的理解不是那么的透徹,雖然索引能夠為查找帶來速度上的提升,但是也會對性能有一些損失,衡量標準,當創建索引帶來的好處多過于消耗的時候,才是最優的選擇~

1、索引會增加寫操作的成本

2、太多的索引會增加查詢優化器的選擇時間

索引的優化策略

索引列上不能使用表達式或函數

上圖中的第一個select語句中使用表達式,因此不滿足創建索引的要求,改為第二個select語句即可

前綴索引和索引列的選擇性

聯合索引

如何選擇索引列的順序

1、經常會被使用到的列優先

2、選擇性高的列優先

覆蓋索引

優點:

1、可以優化緩存,減少磁盤IO操作

2、可以減少隨機IO,使隨機IO操作變為順序IO操作

3、可以避免對Innodb主鍵索引的二次查詢

4、可以避免MyISAM表進行系統調用

無法使用覆蓋索引的情況

1、存儲引擎不支持覆蓋索引

2、查詢中使用了太多的列

3、使用了雙%號的like查詢

使用索引優化查詢

使用索引掃描來優化排序

通過排序操作

按著索引順序掃描數據

注意事項:

1、索引的列順序和order by子句的順序完全一致

2、索引中所有列的方向(升序,降序)和order by子句完全一樣

3、order by中的字段全部在關聯表中的第一張表中

利用索引優化🔐

1、索引可以減少鎖定的行數

2、索引以加快處理速度,同事也加快了鎖的釋放

索引的維護和優化

刪除重復復制和容易的索引

更新索引統計信息及減少索引碎片

analyze table table_name

未完待續,MySQL SQL語句的優化查詢請等待下篇文章

總結

以上是生活随笔為你收集整理的mysql 更新索引_MySQL索引优化的全部內容,希望文章能夠幫你解決所遇到的問題。

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