亚洲精品久久久久久第一页-人妻少妇精彩视品一区二区三区-91国产自拍免费视频-免费一级a在线播放视频正片-少妇天天日天天射天天爽-国产大屁股喷水视频在线观看-操美女骚穴抽插性爱视频-亚洲 欧美 中文字幕 丝袜-成人免费无码片在线观看

解析數(shù)據(jù)庫(kù)索引基礎(chǔ)知識(shí) 數(shù)據(jù)庫(kù)索引有哪些作用( 三 )


索引表中的每個(gè)字段將降低寫入性能 。建議使用表中的唯一值為字段編制索引 。在關(guān)系數(shù)據(jù)庫(kù)中充當(dāng)外鍵的字段必須建立索引 , 因?yàn)樗鼈冇兄诳缍鄠€(gè)表進(jìn)行復(fù)雜查詢 。索引還使用磁盤空間 , 因此在選擇要索引的字段時(shí)要小心 。什么是聚集索引聚集索引clustered index也叫聚簇索引 , 它的定義是:聚集索引的表中數(shù)據(jù)行的物理順序與列值(一般是主鍵的那一列)的邏輯順序相同 , 一個(gè)表中只能擁有一個(gè)聚集索引 。
例如:
結(jié)合上面的表格就很好理解了:數(shù)據(jù)行的物理順序與列值的順序相同 , 如果我們查詢id比較靠后的數(shù)據(jù) , 那么這行數(shù)據(jù)的地址在磁盤中的物理地址也會(huì)比較靠后 。聚集索引存儲(chǔ)記錄是物理上連續(xù)存在 , 而非聚集索引是邏輯上的連續(xù) , 物理存儲(chǔ)并不連續(xù) 。
為什么查詢更快呢?我們通過(guò)上面的分析知道了索引是通過(guò)二叉樹(shù)的數(shù)據(jù)結(jié)構(gòu)來(lái)描述的 , 我們可以這么理解聚簇索引:索引的葉節(jié)點(diǎn)就是數(shù)據(jù)節(jié)點(diǎn) 。而非聚簇索引的葉節(jié)點(diǎn)仍然是索引節(jié)點(diǎn) , 只不過(guò)有一個(gè)指針指向?qū)?yīng)的數(shù)據(jù)塊 。
主鍵一般會(huì)默認(rèn)創(chuàng)建聚集索引 。
在創(chuàng)建聚集索引之前 , 應(yīng)先了解您的數(shù)據(jù)是如何被訪問(wèn)的 。可考慮將聚集索引用于:
包含大量非重復(fù)值的列 。使用下列運(yùn)算符返回一個(gè)范圍值的查詢:BETWEEN、>、>=、< 和 <= 。被連續(xù)訪問(wèn)的列 。返回大型結(jié)果集的查詢 。經(jīng)常被使用鏈接或 GROUP BY 子句的查詢?cè)L問(wèn)的列;一般來(lái)說(shuō) , 這些是外鍵列 。對(duì) ORDER BY 或 GROUP BY 子句中指定的列進(jìn)行索引 , 可以使 SQL Server 不必對(duì)數(shù)據(jù)進(jìn)行排序 , 因?yàn)檫@些行已經(jīng)排序 。這樣可以提高查詢性能 。OLTP型的應(yīng)用程序 , 這些程序要求進(jìn)行非??焖俚膯涡胁檎遥ㄒ话阃ㄟ^(guò)主鍵) 。應(yīng)在主鍵上創(chuàng)建聚集索引 。聚集索引不適用于:
頻繁更改的列 這將導(dǎo)致整行移動(dòng) , 因?yàn)?SQL Server 必須按物理順序保留行中的數(shù)據(jù)值 。這一點(diǎn)要特別注意 , 因?yàn)樵诖髷?shù)據(jù)量事務(wù)處理系統(tǒng)中數(shù)據(jù)是易失的
索引失效的典型例子條件中用or , 即使其中有條件帶索引 , 也不會(huì)使用索引查詢 , 這就是查詢盡量不要用or的原因 , 用in吧 。
常見(jiàn)的sql優(yōu)化手段有哪些1.避免全表掃描全表掃描往往發(fā)生在下面幾種情況:
SQL的on子句或者where子句涉及到的列上沒(méi)有索引;表數(shù)據(jù)量很小 , 走索引查詢比全表掃描更麻煩;這對(duì)于少于10行且行長(zhǎng)度較短的表來(lái)說(shuō)很常見(jiàn)2.避免索引失效不在索引列上做任何操作(計(jì)算 , 函數(shù)、自動(dòng)or手動(dòng)類型轉(zhuǎn)換) , 這樣會(huì)導(dǎo)致索引失效而轉(zhuǎn)向全表掃描 。
存儲(chǔ)引擎不能使用索引中范圍條件右邊的列 。這個(gè)是因?yàn)閍ge中查詢時(shí)范圍查詢了 , pos列的索引就沒(méi)有生效了
盡量使用覆蓋索引(只訪問(wèn)索引的查詢(索引列和查詢列一致)) , 減少select * 。
對(duì)于MySQL而言
mysql在使用不等于(!=或者<>)的時(shí)候無(wú)法使用索引會(huì)導(dǎo)致全表掃描is null,is not null也無(wú)法使用索引like 通配符開(kāi)頭’%abc..’ , mysql索引會(huì)失效會(huì)變成全表掃描的操作3.避免排序 , 不能避免 , 盡量選擇索引排序4.避免查詢不必要的字段5.避免臨時(shí)表的創(chuàng)建 , 刪除


以上關(guān)于本文的內(nèi)容,僅作參考!溫馨提示:如遇健康、疾病相關(guān)的問(wèn)題,請(qǐng)您及時(shí)就醫(yī)或請(qǐng)專業(yè)人士給予相關(guān)指導(dǎo)!

「愛(ài)刨根生活網(wǎng)」www.malaban59.cn小編還為您精選了以下內(nèi)容,希望對(duì)您有所幫助: