日本免费全黄少妇一区二区三区-高清无码一区二区三区四区-欧美中文字幕日韩在线观看-国产福利诱惑在线网站-国产中文字幕一区在线-亚洲欧美精品日韩一区-久久国产精品国产精品国产-国产精久久久久久一区二区三区-欧美亚洲国产精品久久久久

linux家用云服務(wù)器 Linux搭建服務(wù)器( 四 )


27、所以為了加快查詢速度,得給數(shù)據(jù)表也設(shè)置目錄,在數(shù)據(jù)庫(kù)領(lǐng)域中,這就是索引 。一般情況下,數(shù)據(jù)表都會(huì)有多個(gè)字段,那根據(jù)不同的字段也就可以設(shè)立不同的索引 。索引的分類主鍵索引聚集索引非聚集索引主鍵我們都知道,是唯一標(biāo)識(shí)一條數(shù)據(jù)記錄的字段(也存在多個(gè)字段一起來(lái)唯一標(biāo)識(shí)數(shù)據(jù)記錄的聯(lián)合主鍵),那與之對(duì)應(yīng)的就是主鍵索引了 。
28、聚集索引是指索引的邏輯順序與表記錄的物理存儲(chǔ)順序一致的索引,一般情況下主鍵索引就符合這個(gè)定義,所以一般來(lái)說(shuō)主鍵索引也是聚集索引 。但是,這不是絕對(duì)的,在不同的數(shù)據(jù)庫(kù)中,或者在同一個(gè)數(shù)據(jù)庫(kù)下的不同存儲(chǔ)引擎中還是有不同 。聚集索引的葉子節(jié)點(diǎn)直接存儲(chǔ)了數(shù)據(jù),也是數(shù)據(jù)節(jié)點(diǎn),而非聚集索引的葉子節(jié)點(diǎn)沒(méi)有存儲(chǔ)實(shí)際的數(shù)據(jù),需要二次查詢 。
29、索引的實(shí)現(xiàn)原理索引的實(shí)現(xiàn)主要有三種:B+樹哈希表位圖其中,B+樹用的最多,其特點(diǎn)是樹的節(jié)點(diǎn)眾多,相較于二叉樹,這是一棵多叉樹,是一個(gè)扁平的胖樹,減少樹的深度有利于減少磁盤I/O次數(shù),適宜數(shù)據(jù)庫(kù)的存儲(chǔ)特點(diǎn) 。哈希表實(shí)現(xiàn)的索引也叫散列索引,通過(guò)哈希函數(shù)來(lái)實(shí)現(xiàn)數(shù)據(jù)的定位 。哈希算法的特點(diǎn)是速度快,常數(shù)階的時(shí)間復(fù)雜度,但缺點(diǎn)是只適合準(zhǔn)確匹配,不適合模糊匹配和范圍搜索 。
30、位圖索引相對(duì)就少見了 。想象這么一個(gè)場(chǎng)景,如果某個(gè)字段的取值只有有限的少數(shù)幾種可能,比如性別、省份、血型等等,針對(duì)這樣的字段如果用B+樹作為索引的話會(huì)出現(xiàn)什么情況?會(huì)出現(xiàn)大量索引值相同的葉子節(jié)點(diǎn),這實(shí)際上是一種存儲(chǔ)浪費(fèi) 。位圖索引正是基于這一點(diǎn)進(jìn)行優(yōu)化,針對(duì)字段取值只有少量有限項(xiàng),數(shù)據(jù)表中該列字段出現(xiàn)大量重復(fù)時(shí),就是位圖索引一展身手的時(shí)機(jī) 。
31、所謂位圖,就是Bitmap,其基本思想是對(duì)該字段每一個(gè)取值建立一個(gè)二進(jìn)制位圖來(lái)標(biāo)記數(shù)據(jù)表的每一條記錄的該列字段是否是對(duì)應(yīng)取值 。索引雖好,但也不可濫用,一方面索引最終是要存儲(chǔ)到磁盤上的,無(wú)疑會(huì)增加存儲(chǔ)開銷 。另外更重要的是,數(shù)據(jù)表的增刪操作一般會(huì)伴隨對(duì)索引的更新,因此對(duì)數(shù)據(jù)庫(kù)的寫入速度也是會(huì)有一定影響 。
32、你的網(wǎng)站現(xiàn)在訪問(wèn)量越來(lái)越大了,同時(shí)在線人數(shù)大大增長(zhǎng) 。然而,大量用戶的請(qǐng)求帶來(lái)了后端程序?qū)?shù)據(jù)庫(kù)大量的訪問(wèn) 。漸漸的,數(shù)據(jù)庫(kù)的瓶頸開始出現(xiàn),無(wú)法再支持日益增長(zhǎng)的用戶量 。
33、老板再一次給你下達(dá)了性能提升的任務(wù) 。緩存技術(shù)&&布隆過(guò)濾器從物理CPU對(duì)內(nèi)存數(shù)據(jù)的緩存到瀏覽器對(duì)網(wǎng)頁(yè)內(nèi)容的緩存,緩存技術(shù)遍布于計(jì)算機(jī)世界的每一個(gè)角落 。面對(duì)當(dāng)前出現(xiàn)的數(shù)據(jù)庫(kù)瓶頸,同樣可以用緩存技術(shù)來(lái)解決 。
34、每次訪問(wèn)數(shù)據(jù)庫(kù)都需要數(shù)據(jù)庫(kù)進(jìn)行查表(當(dāng)然,數(shù)據(jù)庫(kù)自身也有優(yōu)化措施),反映到底層就是進(jìn)行一次或多次的磁盤I/O,但凡涉及I/O的就會(huì)慢下來(lái) 。如果是一些頻繁用到但又不會(huì)經(jīng)常變化的數(shù)據(jù),何不將其緩存在內(nèi)存中,不必每一次都要找數(shù)據(jù)庫(kù)要,從而減輕對(duì)數(shù)據(jù)庫(kù)對(duì)壓力呢?有需求就有市場(chǎng),有市場(chǎng)就會(huì)有產(chǎn)品,以memcached和Redis為代表的內(nèi)存對(duì)象緩存系統(tǒng)應(yīng)運(yùn)而生 。緩存系統(tǒng)有三個(gè)著名的問(wèn)題:緩存穿透:緩存設(shè)立的目的是為了一定層面上截獲到數(shù)據(jù)庫(kù)存儲(chǔ)層的請(qǐng)求 。
35、穿透的意思就在于這個(gè)截獲沒(méi)有成功,請(qǐng)求最終還是去到了數(shù)據(jù)庫(kù),緩存沒(méi)有產(chǎn)生應(yīng)有的價(jià)值 。緩存擊穿:如果把緩存理解成一面擋在數(shù)據(jù)庫(kù)面前的墻壁,為數(shù)據(jù)庫(kù)抵御查詢請(qǐng)求,所謂擊穿,就是在這面墻壁上打出了一個(gè)洞 。一般發(fā)生在某個(gè)熱點(diǎn)數(shù)據(jù)緩存到期,而此時(shí)針對(duì)該數(shù)據(jù)的大量查詢請(qǐng)求來(lái)臨,大家一股腦的懟到了數(shù)據(jù)庫(kù) 。

推薦閱讀