原创 MySQL性能優化 - 存儲引擎與執行引擎

1、MySQL體系結構圖 2、插拔式存儲引擎 MySQL存儲的存儲引擎是插拔式的,指定在表之上,即一個庫中的每一個表都可以指定專用的存儲引擎。 不管採用什麼樣的存儲引擎結構,都會在數據區產生對應的一個frm文件(表結構定義描述文件)。

原创 MySQL性能優化 - B+Tree索引

1、B+Tree 索引 索引是爲了加速對錶中數據行的檢索而創建的一種分散存儲的數據結構。 爲什麼要使用索引? (1)索引可以極大的減少存儲引擎需要掃描大數據量; (2)索引可以把隨機IO轉變爲順序IO; (3)索引在分組、排序等操作時,

原创 spring讀取applicationContext.xml,加載xsd錯誤

maven打包後啓動程序遇到遇到解析spring的applicationContext.xml文件報錯,錯誤如下: org.xml.sax.SAXParseException: schema_reference.4: Failed to

原创 nodejs快速入門(一)-模塊化開發

    隨着網站開發的複雜度越來越高,js代碼和js文件的增多,出現了開發者頭疼的兩個問題:① 命名衝突;②文件依賴。js模塊化開發可以解決這些問題。   ①變量命令衝突        在js文件中,如下創建一個變量並賦予一個函數。如果文

原创 nodejs快速入門(二)-nodejs

    NodeJS是運行在Chrome V8引擎上,解析JavaScript的運行環境。其特點事件驅動、無阻塞IO,輕量級,運行高效,基於npm管理。(1)NodeJS與JavaScript的區別        NodeJS是運行解析J

原创 nodejs快速入門(三)-模塊引入與加載機制

        本篇文章介紹nodejs的模塊引入與加載機制。 (一)模塊引入與常用內置對象     1、module         nodejs認爲一個js文件就是一個模塊,每個模塊都有一個全局對象module,同時module對象中

原创 【設計模式】模板設計模式與適配器設計模式

1、模板設計模式 趙本山問宋丹丹: “如何把大象放進冰箱?”宋丹丹回答:“第一步:打開冰箱門,第二步:把大象塞進 冰箱,第三步:關閉冰箱門”。趙本山再問:“怎麼把長勁鹿放進冰箱?”宋丹丹答: “第一步:打開冰箱門,第二步:把大象拿出來,第

原创 軟件設計的7大原則

1、開放-封閉原則          對模塊、類、函數擴展開發、對修改關閉。強調使用抽象構建框架,用實現擴展細節,從而提高軟件系統的複用性和擴展性。開閉原則是面向對象設計中最基礎的設計原則,指導我們如何構建穩定靈活的系統。 例如:在版本更

原创 開發者如何高效學習與面試準備

1、關於學習      許多與我一樣的普通開發者,在學習技術都遇到過很多的困惑,比如常見的一些狀態。如學習容易忘記、感覺越學習內容越多,採用方法不對學習效率低下,隨着時間推移,信心逐漸喪失,造成三分鐘熱度。     深層次的原因,來源於當

原创 Spark BlockManager原理與源碼分析

1、BlockManager原理示意圖①Driver上的BlockManagerMaster管理各個節點上BlockManager的元數據信息和維護block的狀態信息。②每個節點上BlockManager的每個組件:        Di

原创 Spark Task原理與源碼分析

① task的原理示意圖②task源碼分析Executor.scala /** * 這裏就是task運行的工作原理 */ class TaskRunner( execBackend: ExecutorBa

原创 Spark Checkpoint原理與源碼分析

1、Checkpoint的應用場景        Checkpoint,是Spark提供的一個比較高級的功能。有的時候啊,比如說,我們的Spark應用程序,特別的複雜,然後呢,從初始的RDD開始,到最後整個應用程序完成,有非常多的步驟,比

原创 SparkContext原理分析與源碼分析

①SparkContext的運行原理②SparkContext.scala/** * 1、通過操作schdulerBackend,對不同的cluster(local、standalone、spark-on-yarn)調度task

原创 Spark CacheManager原理與源碼分析

1、CacheManager在計算中位置與原理示意圖2、源碼解析RDD.scala final def iterator(split: Partition, context: TaskContext): Iterator[T] = {

原创 Spark Master資源調度算算法源碼分析

Master.scala的核心方法private def schedule(): Unit = { // 對master狀態判斷,是否爲ALIVE,因爲standby是不會進行資源調度的 if (state != Reco