亚洲免费在线-亚洲免费在线播放-亚洲免费在线观看-亚洲免费在线观看视频-亚洲免费在线看-亚洲免费在线视频

組合列mysql下的索引使用原則

系統(tǒng) 2157 0

每日一貼,今天的內(nèi)容關(guān)鍵字為組合列

????

為表建立索引,無疑是對(duì)數(shù)據(jù)庫(kù)比較好的優(yōu)化方法之一。以下是自己對(duì)索引的總結(jié)。

????

?

????

MYSQL QUERY Optimizer對(duì)索引的選擇

????

1.即使一個(gè)SQL可以選擇多個(gè)索引,但是大多數(shù)情況下它都市選擇一個(gè)索引,而廢棄其它的索引。

????

應(yīng)用索引的前提:

????

1.索引的存是在where條件之后的。

????

2.在MYSQL中不同的存儲(chǔ)引擎對(duì)索引的看待也是有點(diǎn)不一樣的。

????

?

????

?

????

經(jīng)常使用的索引類型以及情況

????


????

前綴索引(又叫短索引)

????

對(duì)串列停止索引,如果可能應(yīng)該指定一個(gè)前綴長(zhǎng)度。例如,如果有一個(gè)CHAR(255)的 列,如果在前10 個(gè)或20 個(gè)字符內(nèi),多數(shù)值是唯一的,那么就不要對(duì)整個(gè)列停止索引。短索引不僅可以提高查詢速度而且可以節(jié)儉磁盤空間和I/O操作。

????

示例代碼:

    //創(chuàng)建短索引
  
    
      create
    
  

???? index

????ix_test

???? on

????t(col(200))

  
    //適用的情況
  
    
      SELECT
    
  

????userName,income

???? FROM

????t

???? WHERE

????col

???? like

????'

???? john%

????';

  

????

也就是說: 短索引的適用范圍主要是在like之后第一個(gè)非’%’的實(shí)例。

????

?

????

?

????

組合索引

????


????

比如有一條語句是這樣的:select * from users where area=’beijing’ and age=22;
如果我們是在area和age上分別創(chuàng)建單個(gè)索引的話,由于mysql查詢每次只能應(yīng)用一個(gè)索引,所以雖然這樣已經(jīng)相對(duì)不做索引時(shí)全表掃描提高了很多效率,但是如果在area、age兩列上創(chuàng)建復(fù)合索引的話將帶來更高的效率。如果我們創(chuàng)建了(area, age, salary)的復(fù)合索引,那么其實(shí)相當(dāng)于創(chuàng)建了( area ,age,salary)、( area ,age)、( area )三個(gè)索引,這被稱為最好左前綴特性。

????

對(duì)于組合索引,MYSQL數(shù)據(jù)庫(kù)所停止查詢的道理:

????每日一道理
即使青春是一枝嬌艷的花,但我明白,一枝獨(dú)放永遠(yuǎn)不是春天,春天該是萬紫千紅的世界。 即使青春是一株大地偉岸的樹,但我明白,一株獨(dú)秀永遠(yuǎn)不是挺拔,成行成排的林木,才是遮風(fēng)擋沙的綠色長(zhǎng)城。即使青春是一葉大海孤高的帆,但我明白,一葉孤帆很難遠(yuǎn)航,千帆競(jìng)發(fā)才是大海的壯觀。
    
      select
    
  

????*

???? from

????users

???? where

????area=’beijing’

???? and

????age=22;

  
    
      select
    
  

????*

???? from

????users

???? where

????area=’beijing’;

  
    如果area有索引,則以上的SQL語句都市應(yīng)用索引,因?yàn)榻M合索引有最好左前綴的特性,而select *
  

???? from

????users

???? where

????age=22; 則不會(huì)應(yīng)用索引。

  

????

?

????

因此我們?cè)趧?chuàng)建復(fù)合索引時(shí)應(yīng)該將最經(jīng)常使用作限制條件的列放在最左邊,依次遞減。

????

?

????

?

????

單鍵索引還是組合索引

????


????

在一般的應(yīng)用場(chǎng)景中, 只要不是其中某個(gè)過濾字段在大多數(shù)場(chǎng)景下能過濾90%以上的數(shù)據(jù)( 這類可能性很小 ),而其他的過濾字段會(huì)頻繁的更新,一般更傾向于創(chuàng)建組合索引,尤其是在并發(fā)量較高的場(chǎng)景下 。因?yàn)楫?dāng)并發(fā)量較高的時(shí)候,即使只為每一個(gè)Query節(jié)儉了很少的 IO 消費(fèi),但因?yàn)閳?zhí)行量非常大,所節(jié)儉的資源總量仍然是非常可觀的。

????

?

????

當(dāng)然, 創(chuàng)建組合索引并不是說就須要將查詢條件中的所有字段都放在一個(gè)索引中,還應(yīng)該盡量讓一個(gè)索引被多個(gè) Query 語句利用,盡量減少同一個(gè)表上的索引數(shù)量 ,減少因?yàn)閿?shù)據(jù)更新帶來的索引更新本錢,同時(shí)還可以減少因?yàn)樗饕M(fèi)的存儲(chǔ)空間。

????

?

????

有OR在SQL語句中來應(yīng)用索引的情況

????


????

如果有or,where前面就必須全面條件有索引,否則索引將不會(huì)起作用,所以必定要為or的全部字段創(chuàng)建索引

????

SELECT * FROM test WHERE last_name='Widenius' OR first_name='Michael';

????

?

????

?

????

ordery by以及索引排序

????


????

mysql查詢只應(yīng)用一個(gè)索引,因此如果where子句中已經(jīng)應(yīng)用了索引的話,那么order by中的列是不會(huì)應(yīng)用索引的。

????

因此數(shù)據(jù)庫(kù)默認(rèn)排序可以符合要求的情況下不要應(yīng)用排序操作;(排序功能由索引來實(shí)現(xiàn)) 盡量不要包括多個(gè)列的排序,如果需要最好給這些列創(chuàng)建復(fù)合索引。

文章結(jié)束給大家分享下程序員的一些笑話語錄: 程序員的愿望
  有一天一個(gè)程序員見到了上帝.上帝: 小伙子,我可以滿足你一個(gè)愿望.程序員: 我希望中國(guó)國(guó)家隊(duì)能再次打進(jìn)世界杯.
  上帝: 這個(gè)啊!這個(gè)不好辦啊,你還說下一個(gè)吧!
  程序員: 那好!我的下一個(gè)愿望是每天都能休息6個(gè)小時(shí)以上.
  上帝: 還是讓中國(guó)國(guó)家打進(jìn)世界杯.

組合列mysql下的索引使用原則


更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號(hào)聯(lián)系: 360901061

您的支持是博主寫作最大的動(dòng)力,如果您喜歡我的文章,感覺我的文章對(duì)您有幫助,請(qǐng)用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點(diǎn)擊下面給點(diǎn)支持吧,站長(zhǎng)非常感激您!手機(jī)微信長(zhǎng)按不能支付解決辦法:請(qǐng)將微信支付二維碼保存到相冊(cè),切換到微信,然后點(diǎn)擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對(duì)您有幫助就好】

您的支持是博主寫作最大的動(dòng)力,如果您喜歡我的文章,感覺我的文章對(duì)您有幫助,請(qǐng)用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長(zhǎng)會(huì)非常 感謝您的哦!!!

發(fā)表我的評(píng)論
最新評(píng)論 總共0條評(píng)論
主站蜘蛛池模板: 99这里只有精品66视频 | 日本三级不卡 | 四虎影视在线影院在线观看 | 久久久久久久久久综合情日本 | 亚洲日本欧美日韩高观看 | 在线观看 亚洲 | 国产理论视频在线观看 | 久久久久女人精品毛片九一 | 四虎成人影院网址 | 亚洲人和日本人jzz护士 | 性做久久久久久坡多野结衣 | 精品九九久久国内精品 | 抱着cao才爽免费观看 | 亚洲国产欧美在线 | 美国成人毛片 | 国产欧美日韩一区二区三区 | 日本欧美小视频 | 亚洲精品欧美精品一区二区 | 精品日本久久久久久久久久 | 99热久久精品国产 | 亚欧精品在线观看 | 看全色黄大色大片免费视频 | 99伊人| 久久久高清 | 狠狠色综合久久婷婷色天使 | 欧美成人h版影片在线观看 欧美成人h精品网站 | 亚洲欧美综合 | 成人18毛片 | 日本免费一区二区三区在线看 | 国产精品不卡 | 免费国产成人综合 | 黄色香蕉视频网站 | 99国内精品 | www深夜视频在线观看高清 | 成人毛片在线播放 | 大咪咪在线 | 国产在线拍揄自揄视频不卡99 | 亚洲一区二区三区免费看 | 国产一区二区在线 |播放 | 日本高清中文字幕视频在线 | 人人揉人人爽五月天视频 |