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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

索引优化策略(中)

發布時間:2024/4/13 编程问答 31 豆豆
生活随笔 收集整理的這篇文章主要介紹了 索引优化策略(中) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
我們已經知道了,MYSQL中最常見的兩種索引類型的,主要特點,也知道了不同索引的優化策略,下面我們就來看看,如何使用索引來優化我們的查詢了,關于如何優化查詢,我們在下面的查詢優化章節呢,還有更為詳細的討論,這里只舉幾個常用的索引的優化查詢的方法,前面說過了B樹索引,是按照鍵值的順序來存儲的,不但可以利用B樹索引來查找我們所需要的數據,同時還可以利用B樹索引,來做排序,下面我們就先來看看,如何來利用B樹索引呢,來優化排序操作,MYSQL有兩種方式可以生成這種有序的結果,第一種是通過排序操作,另一種是按照索引順序來掃描數據,如果explain所執行的計劃中所顯示的,type列為index,說明MYSQL利用了索引掃描來做排序,使用索引掃描來做排序的時候呢,由于從只需要一條索引記錄,移動到了下一條索引記錄,所以通常來說是很快的,但是如果想用索引掃描的方式,來優化查詢呢,實際上并不太容易,我們先來看看使用索引來優化排序,所需要的條件,大家就知道了

首先想要利用索引來進行排序,首先索引列的順序一定要先要和order by字句的順序要完全一致,而且索引中所有列的方向,不管是升序還是降序,和order by中子字句對應的方向也要完全一致,最后在多個表的關聯查詢中,order by中的字段呢,要全部在關聯表中的第一張表中,那這些條件是不是很苛刻呢,我們下面在事件中呢,去看一看什么樣的查詢是可以使用到索引來進行排序的

我們先來看一下這個表的表結構show create table rental

這張表一共有這么幾個列,同時存在rental_id,rental_date這樣的索引,那么我們來看看,可以使用索引排序的第一種情況呢,由于rental是一個innodb存儲引擎的表,而對于innodb存儲引擎的表來說呢,數據的這種邏輯呢,和組件順序是一致的,所以我們可以使用主鍵來進行排序,如下面的這個排序所示,我們使用order by,rental_id也就是主鍵來進行排序explain select * from rental where rental_date > '2005-01-01' order by rental_id;

大家可以看到

就是用索引來進行排序的,如果是對于其他存儲引擎的表會怎樣呢show create table retal_myisam表

retal_myisam表和rental表是一樣的,并且在rental_date上也是有相同索引的,如果我們在rental_myisam表上執行查詢呢,又會有什么樣的查詢計劃呢,我們來看一下explain select * from rental_myisam where rental_date>'2005-01-01' order by rental_id\G

?

超強干貨來襲 云風專訪:近40年碼齡,通宵達旦的技術人生

總結

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

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