好湿?好紧?好多水好爽自慰,久久久噜久噜久久综合,成人做爰A片免费看黄冈,机机对机机30分钟无遮挡

主頁 > 知識庫 > mysql建立高效的索引實例分析

mysql建立高效的索引實例分析

熱門標簽:銅陵防封電銷卡 電銷卡外呼系統供應商 福建外呼系統定制化 400電話可以免費申請嗎 悟空科技電話機器人 美國反騷擾電話機器人 騰訊地圖標注提升 怎么在地圖標注位置生成圖片 真人語音電話機器人

本文實例講述了mysql建立高效的索引。分享給大家供大家參考,具體如下:

如何建立理想的索引?

  • 查詢頻繁度
  • 區分度
  • 索引長度
  • 覆蓋字段

區分度

假設100萬用戶,性別基本上男/女各為50W, 區分度就低。

長度小

索引長度直接影響索引文件的大小,影響增刪改的速度,并間接影響查詢速度(占用內存多).

區分度高,長度小

問題:如果讓區分度高,而長度小?

答:可以針對列中的值,從左往右截取部分,來建索引

(1)截的越短, 重復度越高,區分度越小, 索引效果越不好
(2)截的越長, 重復度越低,區分度越高, 索引效果越好,但帶來的影響也越大–增刪改變慢,并間影響查詢速度.

所以, 我們要在 區分度 + 長度 兩者上,取得一個平衡。慣用手法:截取不同長度,并測試其區分度。

假設我們有一張表:英語4級的單詞表,里面有13324條記錄,我們怎么給name字段加索引呢?

如果計算區分度?

截取單詞第1位的不重復數:

select count(distinct left(name,1)) from dict

總的數量:

select count(*) from dict

區分度:不重復數/總的數量,sql語句如下:

select (select count(distinct left(name,1)) from dict) / (select count(*) from dict) as rate;

然后按照這樣的步驟把其他長度所對應的區分度給找出來,看一個這個圖表,可以知道當長度為11的時候重復度僅僅為1%,我們可以考慮建立11位長的索引

alter table dict add index name name(11);

左前綴不好區分的情況

對于左前綴不易區分的列 ,建立索引的技巧

如url列

http://www.baidu.com
http://www.web-bc.cn

列的前11個字符都是一樣的,不易區分, 可以用如下2個辦法來解決

(1)把列內容倒過來存儲,并建立索引

moc.udiab.www//:ptth
nc.cb-bew.www//://ptth

這樣左前綴區分度大

(2)偽hash索引效果

同時存url和url_hash列

#建表
create table t10 (
id int primary key,
url char(60) not null default ''
);
#插入數據
insert into t10 values
(1,'http://www.baidu.com'),
(2,'http://www.sina.com'),
(3,'http://www.sohu.com.cn'),
(4,'http://www.onlinedown.net'),
(5,'http://www.gov.cn');
#修改表結構,添加urlcrc列
alter table t10 add urlcrc int unsigned not null;

在存儲的時候,將url對應的crc32碼一同插入到數據庫中,然后按照urlcrc字段建立索引,然后查找的時候,我們在業務層中將對應的url轉換為crc32進行查找,就可以利用上索引了。

因為crc的結果是32位int無符號數,因此當數據超過40億,也會有重復,但這是值得的.(索引長度為int4個字節)

多列索引

多列索引的考慮因素—列的查詢頻率 , 列的區分度, 注意一定要結合實際業務場景

以ecshop商城為例, goods表中的cat_id,brand_id,做多列索引,從區分度看,brand_id區分度更高, 但從 商城的實際業務業務看, 顧客一般先選大分類->小分類->品牌,最終選擇建立2個索引:

(1)index(cat_id,brand_id)
(2)index(cat_id,shop_price)

甚至可以再加 (3)index(cat_id,brand_id,shop_price),3個冗余索引

但(3)中的前2列和(1)中的前2列一樣,所以可以再去掉(1),建立2個索引

index(cat_id,price)index(cat_id,brand_id,shop_price);

更多關于MySQL相關內容感興趣的讀者可查看本站專題:《MySQL索引操作技巧匯總》、《MySQL常用函數大匯總》、《MySQL日志操作技巧大全》、《MySQL事務操作技巧匯總》、《MySQL存儲過程技巧大全》及《MySQL數據庫鎖相關技巧匯總》

希望本文所述對大家MySQL數據庫計有所幫助。

您可能感興趣的文章:
  • mysql重復索引與冗余索引實例分析
  • mysql索引覆蓋實例分析
  • mysql索引對排序的影響實例分析
  • MySQL中NULL對索引的影響深入講解
  • 詳解MySQL索引原理以及優化
  • 通過唯一索引S鎖與X鎖來了解MySQL死鎖套路
  • mysql 添加索引 mysql 如何創建索引
  • MySQL索引類型總結和使用技巧以及注意事項
  • MySQL查看、創建和刪除索引的方法
  • MySQL 創建索引(Create Index)的方法和語法結構及例子
  • mysql聚簇索引的頁分裂原理實例分析

標簽:武威 烏海 白銀 云浮 聊城 湖北 臨汾 湖南

巨人網絡通訊聲明:本文標題《mysql建立高效的索引實例分析》,本文關鍵詞  mysql,建立,高效,的,索引,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《mysql建立高效的索引實例分析》相關的同類信息!
  • 本頁收集關于mysql建立高效的索引實例分析的相關信息資訊供網民參考!
  • 推薦文章
    主站蜘蛛池模板: 啊啊啊好粗| 宅男AV大师中文播放| 亚洲人人视频| 91秘?片黄在线观看AI明星| 黄色免费毛片| 宅男午夜fuli影院| 被粗大的??巴捣出白浆江澄视频 | 凌晨三点免费高清电影韩国| 久久艹免费视频| 波多野结衣初尝黑人138| 大荫蒂BBBBBB大荫蒂| 国产91在线播放动漫| 国产老太grαnnychinese| 艳魔大战2春荡女婬免费| 香港经典四级无码大全| 日韩Av精品一区二区漫画| 人摸人人| 欧美播播| 8x影院| AngelaWhite丰满少妇| 久久乐国产综合亚洲精品| 张开腿被8个黑人调教用玩具| 911在线无码精品秘?入口| 99热这里只有精品久久免费| 成品网源码1688站w| 91精品国产咪咕咪咕10分钟| 女攻戴假阳茎爆男受菊| 久草福利在线| 日本黄色片视频| 小浪货| 男生摸女生下面视频| 成人午夜国产福到在线| 善良的老师伦理BD中字| 国外亚洲成AV人片在线观看| 在线精品免费视频| 俄罗斯美女裸体做爰XXXⅩ| 丝袜好紧…老师我要进去了| fulao视频在线观看免费视频| 日本japanesexxxx| 成人免费??色情美女视频抹茶| 亚洲AV天堂精品一区天堂霜花店|