是的,加上了
LRU算法的PHP實現
B-樹和B+樹最重要的一個區別就是B+樹只有葉節點存放數據,其余節點用來索引,而B-樹是每個索引節點都會有Data域。這就決定了B+樹更適合用來存儲外部數據,也就是所謂的磁盤數據。從Mysql(Inoodb)的角度來看,B+樹是用來充當索引的,一般來說索引非常大,尤其是關系性數據庫這種數據量大的索引能達到億級別,所以為了減少內存的占用,索引也會被存儲在磁盤上。那么Mysql如何衡量查詢效率呢?磁盤IO次數,B-樹(B類樹)的特定就是每層節點數目非常多,層數很少,目的就是為了就少磁盤IO次數,當查詢數據的時候,最好的情況就是很快找到目標索引,然后讀取數據,使用B+樹就能很好的完成這個目的,但是B-樹的每個節點都有data域(指針),這無疑增大了節點大小,說白了增加了磁盤IO次數(磁盤IO一次讀出的數據量大小是固定的,單個數據變大,每次讀出的就少,IO次數增多,一次IO多耗時啊!),而B+樹除了葉子節點其它節點并不存儲數據,節點小,磁盤IO次數就少。這是優點之一。另一個優點是什么,B+樹所有的Data域在葉子節點,一般來說都會進行一個優化,就是將所有的葉子節點用指針串起來。這樣遍歷葉子節點就能獲得全部數據,這樣就能進行區間訪問啦。至于MongoDB為什么使用B-樹而不是B+樹,可以從它的設計角度來考慮,它并不是傳統的關系性數據庫,而是以Json格式作為存儲的nosql,目的就是高性能,高可用,易擴展。首先它擺脫了關系模型,上面所述的優點2需求就沒那么強烈了,其次Mysql由于使用B+樹,數據都在葉節點上,每次查詢都需要訪問到葉節點,而MongoDB使用B-樹,所有節點都有Data域,只要找到指定索引就可以進行訪問,無疑單次查詢平均快于Mysql(但側面來看Mysql至少平均查詢耗時差不多)。總體來說,Mysql選用B+樹和MongoDB選用B-樹還是以自己的需求來選擇的。( 摘抄來的,做個筆記 -_- )
哈希表
IO多路復用的三種機制Select,Poll,EpollI/O多路復用(multiplexing)的本質是通過一種機制(系統內核緩沖I/O數據),讓單個進程可以監視多個文件描述符,一旦某個描述符就緒(一般是讀就緒或寫就緒),能夠通...
額。。同步和異步的區別還是要說一下:
同步和異步是相對于應用和內核的交互方式來說的,同步是應用程序只關注就緒事件,真正的IO讀寫是應用自己完成的,異步是應用程序關注完成事件,真正的IO是內核做的,IO完成后通知程序。不知道說明白沒有,可以參考java的一些概念:
BIO(同步阻塞)
NIO(同步非阻塞)
AIO(異步非阻塞)
IO多路復用的三種機制Select,Poll,EpollI/O多路復用(multiplexing)的本質是通過一種機制(系統內核緩沖I/O數據),讓單個進程可以監視多個文件描述符,一旦某個描述符就緒(一般是讀就緒或寫就緒),能夠通...
原因分析 1.網絡的延遲由于mysql主從復制是基于binlog的一種異步復制,通過網絡傳送binlog文件,理所當然網絡延遲是主從不同步的絕大多數的原因,特別是跨機房的數據...
? 前面三章介紹了Netty的一些基本用法,這一章介紹怎么使用Netty來實現一個簡單的長連接demo。 Netty入門教程——認識Netty Netty入門教程2——動...
什么是Netty? Netty 是一個利用 Java 的高級網絡的能力,隱藏其背后的復雜性而提供一個易于使用的 API 的客戶端/服務器框架。Netty 是一個廣泛使用的 J...
isset() isset() 函數用于檢測變量是否已設置并且非 NULL。如果已經使用 unset() 釋放了一個變量之后,再通過 isset() 判斷將返回 FALSE。...
兩階段提交協議(Two-phase Commit,2PC)經常被用來實現分布式事務。一般分為協調器C和若干事務執行者Si兩種角色,這里的事務執行者就是具體的數據庫,協調器可以...
不同于單一架構應用(Monolith), 分布式環境下, 進行事務操作將變得困難, 因為分布式環境通常會有多個數據源, 只用本地數據庫事務難以保證多個數據源數據的一致性. 這...
最近做php跨域調用的方案,其中要保證兩個前端域名a.com,b.com都可以訪問后端域名server.com,而且不同的前端域請求,服務端邏輯處理不一樣,要做前端域名的判斷...
不是完全贊同,在成長型的小公司,對于人才的要求和你能力提升的空間還是很大的,往往會大于大公司的能力提升,因為大公司所有員工都是一個螺絲釘,你只能在你的空間內做事情,而且大公司對于員工的可替代性訴求比較高,走任何一個人都不會影響到公司的運營,小公司則不同,你可能要面對各種問題,解決各種難題,雖然吐槽會比較多,但是你真正得到了鍛煉,技能和視野無形當中得到了提升,世上沒有白吃的苦,任何公司都是從小到大的,馬云當時不也是12個人的公司嗎?
關鍵是你對公司未來的預判,在這里是否可以成長,跟公司大小沒關系。
千萬別進小公司!為啥?為什么“千萬不要去小公司上班”?小公司的“小”究竟說的是什么?就讓被小公司坑過的我來為你解答吧。 ?何為“小”公司 小公司的“小”說的是什么呢?不僅是指辦公室小、職員少,更可...