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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

创建高性能索引笔记

發布時間:2025/3/21 编程问答 18 豆豆
生活随笔 收集整理的這篇文章主要介紹了 创建高性能索引笔记 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

可以使用B-Tree索引的查詢類型

  • 全值匹配 :和索引中的所有列進行匹配
  • 匹配最左前綴 :可只是用索引的第一列
  • 匹配列前綴 :也可以只匹配某一列的值的開頭部分
  • 匹配范圍值 :查找在某個范圍的
  • 精確匹配某一列并范圍匹配另外一列 :即第一列全批評,第二列范圍匹配

B-Tree索引的一些限制

如果不是按照索引的最左列開始查詢,則無法使用索引

不能跳過索引中的列,只有索引中的1、3列缺失了第二列,則只能使用索引的第一列

如果查詢中有某個列的范圍查詢,則其右邊的所有列無法使用索引進行優化查詢

高性能索引的策略

?

  • 獨立的列

??????? ”獨立的列“ 是指索引列不能是表達式的一部分,也不能是函數的參數

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

??????? 有時需要索引很長的字符列,這會讓索引變得大且慢。一個策略是模擬哈希索引,通常還可以索引開始的部分字符,這里需要選擇合適的前綴長度,使前綴的選擇性達到完整列的選擇性,計算方式

SELECT COUNT(DISTINCT city)/COUNT(*) FROM sakila.city_demo;+----------------------------------------+ |COUNT(DISTINCT city)/COUNT(*) | +----------------------------------------+ | 0.0312 | +----------------------------------------+SELECT COUNT(DISTINCT LEFT(city, 3))/COUNT(*) AS sel3,COUNT(DISTINCT LEFT(city, 4))/COUNT(*) AS sel4,COUNT(DISTINCT LEFT(city, 5))/COUNT(*) AS sel5, COUNT(DISTINCT LEFT(city, 6))/COUNT(*) AS sel6,COUNT(DISTINCT LEFT(city, 7))/COUNT(*) AS sel7, FROM sakila.city_demo;+--------------------------------------------------+ |sel3 |sel4 |sel5 |sel6 |sel7 | |0.0239 |0.0293 |0.0305 |0.0309 |0.0310 | +-------------------------------------------------+

查詢顯示達到7的時候再曾經長度,提升的效果已經很小了

  • 多列索引
  • 選擇合適的索引列順序
  • 聚簇索引,innodb的數據存儲方式

轉載于:https://www.cnblogs.com/mliudong/p/3235022.html

《新程序員》:云原生和全面數字化實踐50位技術專家共同創作,文字、視頻、音頻交互閱讀

總結

以上是生活随笔為你收集整理的创建高性能索引笔记的全部內容,希望文章能夠幫你解決所遇到的問題。

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