最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

mysql 松散的索引掃描(Loose index scan)

 更新時(shí)間:2016年05月29日 23:45:32   投稿:mdxy-dxy  
今天讀《High Performance MySQL》,發(fā)現(xiàn)一個(gè)“Loose index scan”,之前完全沒(méi)有聽(tīng)說(shuō)過(guò)。網(wǎng)上查了些資料,這個(gè)叫松散的索引掃描(Loose index scan)

優(yōu)化Group By最有效的辦法是當(dāng)可以直接使用索引來(lái)完全獲取需要group的字段。使用這個(gè)訪問(wèn)方法時(shí),MySQL使用對(duì)關(guān)鍵字排序的索引的類型(比如BTREE索引)。這使得索引中用于group的字段不必完全涵蓋WHERE條件中索引對(duì)應(yīng)的key。由于只包含索引中關(guān)鍵字的一部分,因此稱為松散的索引掃描。

歷史上MySQL不能做松散的索引掃描,這種方式可以掃描索引的非連續(xù)部分,假定下面的例子中,在列(a,b)上有一索引,要運(yùn)行下面的查詢:

mysql> SELECT … FROM tbl WHERE b BETWEEN 2 AND 3;

因?yàn)樗饕龔牧衋開(kāi)始,但是WHERE沒(méi)制定列a,MySQL將做全表掃描來(lái)消除不匹配的行。
很希望有快的方式來(lái)執(zhí)行查詢。某些索引結(jié)構(gòu)(不是MySQL)讓你定位到每個(gè)范圍的開(kāi)始,掃描到范圍結(jié)束,然后跳到下一范圍的開(kāi)始。
這當(dāng)然是相對(duì)簡(jiǎn)單的例子,也可以很容易通過(guò)再加一個(gè)不同的索引來(lái)達(dá)到目的。實(shí)際上,很多時(shí)候添加另一個(gè)索引不一定能解決問(wèn)題。一個(gè)例子是某些查詢?cè)谒饕牡谝粋€(gè)列上有范圍條件在第二個(gè)列上有等價(jià)條件。
從MySQL 5.0 開(kāi)始,松散索引掃描在一定條件是可能的,比如在分組查詢中找到最大和最小值:

mysql> EXPLAIN SELECT actor_id, MAX(film_id)
-> FROM sakila.film_actor
-> GROUP BY actor_idG
*************************** 1. row ***************************
id: 1
select_type: SIMPLE
table: film_actor
type: range
possible_keys: NULL
key: PRIMARY
key_len: 2
ref: NULL
rows: 396
Extra: Using index for group-by

在下面一些情況下是可以使用松散索引掃描的:
• 查詢針對(duì)一個(gè)單表。
• GROUP BY包括索引的第1個(gè)連續(xù)部分(如果對(duì)于GROUP BY,查詢有一個(gè)DISTINCT子句,則所有DISTINCT的屬性指向索引開(kāi)頭)。
• 只使用累積函數(shù)(如果有)MIN()和MAX(),并且它們均指向相同的列。
• 索引的任何其它部分(除了那些來(lái)自查詢中引用的GROUP BY)必須為常數(shù)(也就是說(shuō),必須按常量數(shù)量來(lái)引用它們),但MIN()或MAX() 函數(shù)的參數(shù)例外。

相關(guān)文章

  • MySQL中distinct與group by之間的性能進(jìn)行比較

    MySQL中distinct與group by之間的性能進(jìn)行比較

    這篇文章主要針對(duì)MySQL中distinct與group by之間的性能進(jìn)行比較,內(nèi)容比較詳細(xì),很直觀的能看出比較結(jié)果,感興趣的小伙伴們可以參考一下
    2015-11-11
  • MySQL 實(shí)例無(wú)法啟動(dòng)的問(wèn)題分析及解決

    MySQL 實(shí)例無(wú)法啟動(dòng)的問(wèn)題分析及解決

    這篇文章主要介紹了MySQL 實(shí)例無(wú)法啟動(dòng)的問(wèn)題分析及解決方法,幫助大家更好的理解和學(xué)習(xí)使用MySQL數(shù)據(jù)庫(kù),感興趣的朋友可以了解下
    2021-03-03
  • MySQL主鍵索引和非主鍵索引的實(shí)現(xiàn)

    MySQL主鍵索引和非主鍵索引的實(shí)現(xiàn)

    本文主要介紹了MySQL主鍵索引和非主鍵索引的實(shí)現(xiàn),文中詳細(xì)的介紹了主鍵索引和非主鍵索引有不同的作用和特點(diǎn),具有一定的參考價(jià)值,感興趣的可以了解一下
    2023-10-10
  • Mysql基礎(chǔ)學(xué)習(xí)之LAG與LEAD開(kāi)窗函數(shù)

    Mysql基礎(chǔ)學(xué)習(xí)之LAG與LEAD開(kāi)窗函數(shù)

    lead和lag是在SQL中用于創(chuàng)建窗口函數(shù)的兩個(gè)常用函數(shù),這篇文章主要給大家介紹了關(guān)于Mysql基礎(chǔ)學(xué)習(xí)之LAG與LEAD開(kāi)窗函數(shù)的相關(guān)資料,文中通過(guò)代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2023-11-11
  • 輕松上手MYSQL之SQL優(yōu)化之Explain詳解

    輕松上手MYSQL之SQL優(yōu)化之Explain詳解

    Explain是SQL分析工具中非常重要的一個(gè)功能,它可以模擬優(yōu)化器執(zhí)行查詢語(yǔ)句,幫助我們理解查詢是如何執(zhí)行的,這篇文章主要給大家介紹了關(guān)于輕松上手MYSQL之SQL優(yōu)化之Explain詳解的相關(guān)資料,需要的朋友可以參考下
    2024-06-06
  • Mysql使用索引的正確方法及索引原理詳解

    Mysql使用索引的正確方法及索引原理詳解

    這篇文章主要給大家介紹了關(guān)于Mysql使用索引的正確方法及索引原理的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家學(xué)習(xí)或者使用mysql具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2018-05-05
  • MySql中數(shù)據(jù)表增加字段很慢問(wèn)題及解決

    MySql中數(shù)據(jù)表增加字段很慢問(wèn)題及解決

    這篇文章主要介紹了MySql中數(shù)據(jù)表增加字段很慢問(wèn)題及解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2024-04-04
  • MySQL設(shè)置用戶權(quán)限的簡(jiǎn)單步驟

    MySQL設(shè)置用戶權(quán)限的簡(jiǎn)單步驟

    這篇文章主要給大家介紹了關(guān)于MySQL設(shè)置用戶權(quán)限的簡(jiǎn)單步驟,學(xué)習(xí)MySQL數(shù)據(jù)庫(kù),MySQL用戶權(quán)限設(shè)置是需要首先學(xué)習(xí)的,需要的朋友可以參考下
    2023-07-07
  • mysql實(shí)現(xiàn)將date字段默認(rèn)值設(shè)置為CURRENT_DATE

    mysql實(shí)現(xiàn)將date字段默認(rèn)值設(shè)置為CURRENT_DATE

    這篇文章主要介紹了mysql實(shí)現(xiàn)將date字段默認(rèn)值設(shè)置為CURRENT_DATE問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-07-07
  • 選擇MySQL數(shù)據(jù)庫(kù)的命令以及PHP腳本下的操作方法

    選擇MySQL數(shù)據(jù)庫(kù)的命令以及PHP腳本下的操作方法

    這篇文章主要介紹了選擇MySQL數(shù)據(jù)庫(kù)的命令以及PHP腳本下的操作方法,此外文中還對(duì)MySQL的基本數(shù)據(jù)類型作了介紹,需要的朋友可以參考下
    2015-11-11

最新評(píng)論

昆山市| 巴塘县| 阿拉善盟| 随州市| 维西| 玉环县| 宁明县| 聂拉木县| 吉木乃县| 德化县| 齐河县| 衡东县| 清丰县| 东阳市| 海门市| 视频| 丘北县| 花垣县| 乡城县| 宁阳县| 二连浩特市| 富民县| 日照市| 山东省| 镇康县| 罗田县| 昆山市| 六枝特区| 林州市| 屯留县| 工布江达县| 咸宁市| 寻甸| 丹江口市| 赞皇县| 新乡市| 南华县| 彰化市| 远安县| 渝北区| 太谷县|