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

mysql中關(guān)于覆蓋索引的知識點總結(jié)

 更新時間:2020年08月30日 10:07:45   投稿:laozhang  
在本篇文章里小編給大家整理的是一篇關(guān)于mysql中關(guān)于覆蓋索引的知識點總結(jié)內(nèi)容,有需要的朋友們學(xué)習(xí)參考下。

如果一個索引包含(或覆蓋)所有需要查詢的字段的值,稱為‘覆蓋索引'。

覆蓋索引是一種非常強(qiáng)大的工具,能大大提高查詢性能,只需要讀取索引而不需要讀取數(shù)據(jù),有以下優(yōu)點:

1、索引項通常比記錄要小,所以MySQL訪問更少的數(shù)據(jù)。

2、索引都按值得大小存儲,相對于隨機(jī)訪問記錄,需要更少的I/O。

3、數(shù)據(jù)引擎能更好的緩存索引,比如MyISAM只緩存索引。

4、覆蓋索引對InnoDB尤其有用,因為InnoDB使用聚集索引組織數(shù)據(jù),如果二級索引包含查詢所需的數(shù)據(jù),就不再需要在聚集索引中查找了。

限制:

1、覆蓋索引也并不適用于任意的索引類型,索引必須存儲列的值。

2、Hash和full-text索引不存儲值,因此MySQL只能使用BTree。

3、不同的存儲引擎實現(xiàn)覆蓋索引都是不同的,并不是所有的存儲引擎都支持覆蓋索引。

4、如果要使用覆蓋索引,一定要注意SELECT列表值取出需要的列,不可以SELECT * ,因為如果將所有字段一起做索引會導(dǎo)致索引文件過大,查詢性能下降。

知識點擴(kuò)充:

1、兩遍掃描算法(Two passes)

實現(xiàn)方式是先將須要排序的字段和可以直接定位到相關(guān)行數(shù)據(jù)的指針信息取出,然后在設(shè)定的內(nèi)存(通過參數(shù)sort_buffer_size設(shè)定)中進(jìn)行排序,完成排序之后再次通過行指針信息取出所需的Columns

注:該算法是4.1之前采用的算法,它需要兩次訪問數(shù)據(jù),尤其是第二次讀取操作會導(dǎo)致大量的隨機(jī)I/O操作。另一方面,內(nèi)存開銷較小

2、 一次掃描算法(single pass)

該算法一次性將所需的Columns全部取出,在內(nèi)存中排序后直接將結(jié)果輸出
注: 從 MySQL 4.1 版本開始使用該算法。它減少了I/O的次數(shù),效率較高,但是內(nèi)存開銷也較大。如果我們將并不需要的Columns也取出來,就會極大地浪費(fèi)排序過程所需要 的內(nèi)存。在 MySQL 4.1 之后的版本中,可以通過設(shè)置 max_length_for_sort_data 參數(shù)來控制 MySQL 選擇第一種排序算法還是第二種。當(dāng)取出的所有大字段總大小大于 max_length_for_sort_data 的設(shè)置時,MySQL 就會選擇使用第一種排序算法,反之,則會選擇第二種。為了盡可能地提高排序性能,我們自然更希望使用第二種排序算法,所以在 Query 中僅僅取出需要的 Columns 是非常有必要的。

當(dāng)對連接操作進(jìn)行排序時,如果ORDER BY僅僅引用第一個表的列,MySQL對該表進(jìn)行filesort操作,然后進(jìn)行連接處理,此時,EXPLAIN輸出“Using filesort”;否則,MySQL必須將查詢的結(jié)果集生成一個臨時表,在連接完成之后進(jìn)行filesort操作,此時,EXPLAIN輸出 “Using temporary;Using filesort”

以上就是mysql中關(guān)于覆蓋索引的知識點總結(jié)的詳細(xì)內(nèi)容,更多關(guān)于mysql中什么是覆蓋索引的資料請關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • VSCODE連接MySQL數(shù)據(jù)庫服務(wù)圖文教程

    VSCODE連接MySQL數(shù)據(jù)庫服務(wù)圖文教程

    最近做網(wǎng)頁碰到連接數(shù)據(jù)庫的問題,上網(wǎng)查了挺久終于搞明白了,下面這篇文章主要給大家介紹了關(guān)于VSCODE連接MySQL數(shù)據(jù)庫服務(wù)的相關(guān)資料,文中通過圖文介紹的非常詳細(xì),需要的朋友可以參考下
    2023-06-06
  • win7下MySql 5.7安裝配置方法圖文教程

    win7下MySql 5.7安裝配置方法圖文教程

    這篇文章主要為大家分享了win7下MySql 5.7安裝配置方法圖文教程,感興趣的小伙伴們可以參考一下
    2016-05-05
  • MySQL拋出Incorrect string value異常分析

    MySQL拋出Incorrect string value異常分析

    從上至下統(tǒng)一用上UTF-8就高枕無憂,今天還是遇到字符的異常,本文將介紹解決方法
    2012-11-11
  • MySQL中的字符替換示例詳解

    MySQL中的字符替換示例詳解

    本文介紹了 MySQL 中的兩種字符替換函數(shù):REPLACE 和 REGEXP_REPLACE,通過這兩個函數(shù)的使用,我們可以方便地進(jìn)行字符替換操作,提高數(shù)據(jù)處理的效率和準(zhǔn)確性,感興趣的朋友跟隨小編一起看看吧
    2023-06-06
  • MySQL表中添加數(shù)據(jù)的方法

    MySQL表中添加數(shù)據(jù)的方法

    這篇文章主要介紹了MySQL表中添加數(shù)據(jù)的方法,本文通過sql語句給大家詳細(xì)講解,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2022-11-11
  • MySQL 8.0.20 安裝教程圖文詳解(windows 64位)

    MySQL 8.0.20 安裝教程圖文詳解(windows 64位)

    這篇文章主要介紹了MySQL 8.0.20安裝教程(windows 64位),本文通過圖文并茂的形式給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有,需要的朋友可以參考下
    2020-05-05
  • asp采用ODBC接口訪問MySQL的方法

    asp采用ODBC接口訪問MySQL的方法

    asp采用ODBC接口訪問MySQL的方法...
    2007-07-07
  • MySQL中json_extract()函數(shù)的使用實例

    MySQL中json_extract()函數(shù)的使用實例

    這篇文章主要介紹了MySQL中json_extract()函數(shù)的使用實例,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-07-07
  • mysql5.6及以下版本如何查詢數(shù)據(jù)庫里的json

    mysql5.6及以下版本如何查詢數(shù)據(jù)庫里的json

    MySQL里面保存數(shù)據(jù)有時候會把一些雜亂且不常用的時候丟進(jìn)一個json字段里面,那么如何查詢數(shù)據(jù)庫里的json呢以及mysql存儲json注意那些格式呢?接下來通過本文給大家詳細(xì)介紹,需要的朋友參考下
    2017-03-03
  • MySQL修改root賬號密碼的方法

    MySQL修改root賬號密碼的方法

    這篇文章介紹了兩種情況,知道root密碼的情況下修改root密碼,以及忘記了root密碼,如何對root的密碼進(jìn)行修改,需要的朋友可以參考下
    2015-07-07

最新評論

房山区| 南宫市| 南皮县| 肇庆市| 廊坊市| 邵阳市| 常山县| 佳木斯市| 阿坝县| 英山县| 介休市| 本溪| 井研县| 铅山县| 达州市| 黑龙江省| 绥江县| 扬中市| 尼木县| 丹东市| 都江堰市| 鲜城| 鹿邑县| 屯昌县| 盐津县| 德昌县| 靖西县| 桃江县| 常德市| 依安县| 伊宁县| 巨鹿县| 夹江县| 凤城市| 庆云县| 亳州市| 肃北| 贡觉县| 克什克腾旗| 科技| 临澧县|