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

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

Day 43 索引

發(fā)布時(shí)間:2024/4/17 编程问答 31 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Day 43 索引 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

目錄

  • 索引
    • 什么是索引:
    • 為什么需要索引:
    • 索引的影響
    • 什么樣的數(shù)據(jù)應(yīng)該添加索引:
    • 磁盤IO
    • 索引數(shù)據(jù)結(jié)構(gòu)
    • 最左匹配原則
    • 聚集索引
    • 輔助索引
    • 覆蓋查詢
    • 回表查詢
  • 結(jié)論:
  • 創(chuàng)建索引的語(yǔ)法
    • 聯(lián)合索引
    • 刪除索引

索引

什么是索引:

? 可以理解為搜索引導(dǎo),索引是一個(gè)特殊的數(shù)據(jù)結(jié)構(gòu),期存儲(chǔ)的是數(shù)據(jù)的關(guān)鍵信息與詳細(xì)信息的位置對(duì)應(yīng)關(guān)系

為什么需要索引:

? 加速查詢,當(dāng)數(shù)據(jù)量非常大的時(shí)候,查詢一個(gè)數(shù)據(jù)是非常慢的

索引的影響

  • 并不是有的索引就能加速,要看查詢語(yǔ)句是否正確的使用了索引
  • 索引頁(yè)需要占用額外的數(shù)據(jù)空間
  • 添加索引后將導(dǎo)致表的增刪改寫入變慢(因?yàn)樾枰滤饕?
  • 什么樣的數(shù)據(jù)應(yīng)該添加索引:

  • 查詢操作較多寫入較少并且數(shù)據(jù)鏈很大時(shí)

  • 查詢與寫入操作的占比大于10:1

  • 本質(zhì)上索引原理是因可能的減小搜索范圍

  • 磁盤IO

    ? 平均查找一個(gè)數(shù)據(jù)需要花費(fèi)9ms,cpu會(huì)被切換到其他的程序去執(zhí)行.我們要加速查詢必須要減少IO操作的次數(shù)

    索引數(shù)據(jù)結(jié)構(gòu)

    ? b+樹(shù):

    ? 在b+樹(shù)種,葉子節(jié)點(diǎn)才是存儲(chǔ)正是數(shù)據(jù)的,葉子數(shù)量越多,樹(shù)的層級(jí)越高,導(dǎo)致IO次數(shù)增加,要避免這個(gè)問(wèn)題,就應(yīng)該將數(shù)據(jù)量小的數(shù)據(jù)作為索引

    最左匹配原則

    ? 索引在查找時(shí),是按照從左往右依次比較,如果查詢語(yǔ)句沒(méi)有出現(xiàn)在最左邊的索引,將無(wú)法加速查詢

    聚集索引

    ? 聚集索引中包含了所有字段的值,如果已指定了主鍵,主鍵就是狙擊索引,如果沒(méi)有則找一個(gè)非空且唯一的字段作為聚集索引,如果也找不到,則自動(dòng)生成一個(gè)字段作為聚集索引

    ? 直接查詢聚集索引,當(dāng)索引中包含了所有需要的字段時(shí),稱之為覆蓋查詢

    ? 聚集索引中存儲(chǔ)了所有的數(shù)據(jù)

    輔助索引

    ? 除了聚集索引意外的都叫輔助索引

    ? 輔助索引中值包含當(dāng)前的索引字段和主鍵的值

    覆蓋查詢

    ? 值得是在當(dāng)前索引結(jié)構(gòu)中就能找到所需的數(shù)據(jù),如果使用的是狙擊索引來(lái)查詢name一定是覆蓋查詢,速度最快

    回表查詢

    ? 指得是在當(dāng)前索引結(jié)構(gòu)中找不到所需的數(shù)據(jù),需要通過(guò)id去聚集索引中查詢,速度慢于聚集索引

    結(jié)論:

  • 使用占用空間最小的字段來(lái)作為索引

  • 不要在一行中存儲(chǔ)太多的數(shù)據(jù)

  • 盡量使用覆蓋查詢

  • 如果字段區(qū)分度低(重復(fù)度高),建立素銀是沒(méi)有意義的,翻過(guò)來(lái)說(shuō)應(yīng)該

  • 在模糊匹配中,備份好盡量不要寫在前面

  • 如果要查詢的數(shù)據(jù)鏈給非常大,索引頁(yè)沒(méi)辦法加速

  • 不要在等號(hào)的左邊做運(yùn)算內(nèi)容

  • and語(yǔ)句中會(huì)優(yōu)先執(zhí)行有索引的字段,所以我們應(yīng)該在and語(yǔ)句用包含一個(gè)具備索引的字段(與位置無(wú)關(guān))

  • 避免使用or語(yǔ)句,or語(yǔ)句不會(huì)優(yōu)先執(zhí)行有索引的字段如果要用的話必須保證所有字段都有索引才能加速

  • 聯(lián)合索引中,順序應(yīng)該將區(qū)分度最高的放到左邊,最低的放到右邊,查詢語(yǔ)句中必須保證最左邊的索引在查詢語(yǔ)句中

  • 總結(jié):不是添加了索引就能提速,需要考慮索引添加的是否合理,sql語(yǔ)句是否使用到了索引

    創(chuàng)建索引的語(yǔ)法

    ? create index 索引名字 on 表名稱(字段名)

    聯(lián)合索引

    ? create index 索引的名字 on 表名稱(字段名,字段名)

    刪除索引

    ? drop index 索引名稱 on 表名稱

    ?

    轉(zhuǎn)載于:https://www.cnblogs.com/masterjian924/p/11264739.html

    總結(jié)

    以上是生活随笔為你收集整理的Day 43 索引的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

    如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。