原创 Java常用設計模式————外觀模式

引言 外觀模式(Facade Pattern),又叫“過程模式”。外觀模式爲子系統中的一組接口提供一個一致的入口,此模式定義了一個高層接口,這個接口使得這一組子系統更加易用。 一、案例分析 生活中有很多類似的案例,比如駕駛員駕駛汽車,只需

原创 MySQL 高級 —— MVCC 多版本併發控制

引言 MySQL的大多數事務型存儲引擎實現的都不是簡單的行級鎖。基於提升併發性能的考慮,它們一般都同時實現了多版本併發控制——MVCC。包括其他數據庫如Oracle等,由於MVCC並沒有一個統一的實現標準,因此它們的實現原理都不盡相同。

原创 Java常用設計模式————組合模式

引言 組合模式,是一種類似遞歸算法的結構性設計模式,通過以簡單的 List ,組合本類對象,實現樹狀對象結構的“部分、整體”的層次。 它可以讓調用程序不需要關心複雜對象與簡單對象的區別,而統一地實現處理邏輯。 對於個體與整體存在一定共性的

原创 Java常用設計模式————裝飾者模式

引言 裝飾者模式,又叫裝飾器模式。它可以動態的將新功能附加到對象上。在對象功能擴展方面,它比繼承更靈活,同時裝飾者模式也體現了OCP原則。 在客戶端調用使用了裝飾者模式的對象時,就好像在使用構造器層層包裹核心對象,層層裝飾核心對象,因此叫

原创 Java常用設計模式————橋接模式

引言 在實際的業務中,經常會遇到多維度的概念組合,公園的門票,頤和園有年票、月票、日票,故宮也有年票、月票、日票。那麼不同的公園和票種類型就可以視爲兩種不同的緯度,它們之間會形成相互組合的關係。 在類的設計上,如果任由兩種緯度的類任意組合

原创 Java常用設計模式————適配器模式

引言 由於無法直接使用某個類中的方法而採取的一種中間類轉換的策略。將一個類的接口轉換成另一個接口,讓原本接口不兼容的類可以兼容。 適配器模式可以分爲三種:類適配器、對象適配器、接口適配器。它們之間的區別主要體現在適配器角色與被適配角色之間

原创 MySQL 優化 —— EXPLAIN 執行計劃詳解

引言 本博客大部分內容翻譯自MySQL 官網 Understanding the Query Execution Plan 專題。另外有一些補充,則來自於網課以及《高性能MySQL(第三版)》。 根據我們的表、字段、索引、以及 where

原创 MySQL 基礎 ———— 子查詢

引言 承接《MySQL 基礎 ———— 連接查詢》,本文介紹和展示SQL中子查詢的使用。 子查詢是出現在其他語句中的select 語句,也稱爲內查詢。外部的查詢語句,稱爲主查詢或外查詢。 一、子查詢的分類和支持的子句 按照子查詢出現的位置

原创 MySQL 高級 ———— MySQL邏輯架構圖簡介

引言 本篇文章介紹MySQL的邏輯架構圖。 MySQL並不完美,但足夠靈活,能夠適應高要求環境。MySQL不僅可以嵌入到應用程序中,同時也可以支持數據倉庫、內容搜索、和部署軟件、高可用的冗餘系統、在線事務處理系統等各種應用類型。 一、My

原创 關於 OutOfMemoryError 的總結與解決方法

引言 本文總結自周志明的《深入理解Java虛擬機》第二章部分內容。 這部分內容,可以爲後續性能調優方面的工作起到鋪墊作用。 一、什麼是 OutOfMemoryError OurOfMemory 簡稱“OOM”, 直譯爲“內存耗盡”或“內存

原创 Linux 實操———— Shell 遠程執行命令

引言 目前,開發人員的部署方式是,將項目打包(Maven 打包) 然後將 生成的 jar 包等文件,通過Xshell 等終端工具手動傳輸到遠程服務器上,然後再通過在終端執行遠程服務器上的 shell 腳本來啓動服務。 本篇博客聚焦這樣一種

原创 MySQL 優化 —— ORDER BY 優化

引言 本文翻譯自MySQL 官網:ORDER BY Optimization,MySQL 版本:5.7。 這一部分描述了MySQL何時會使用索引來滿足order by子句,filesort 操作會在索引不能生效的時候被用到,以及優化器對o

原创 MySQL 高級 —— 複合索引簡介(多列索引)

引言 複合索引是指包含多個數據列的索引,與之概念相對的是單列索引,僅包含一個數據列。在大多數情況下,建立多列索引的好處都要多於單列索引。另外,複合索引最多支持16個列,但請一定不要讓複合索引包含太多的列,這會導致索引空間的浪費。 索引是一

原创 Spring Boot 實用開發技巧————Eclipse 遠程調試

引言 在之前的開發當中,都會進行本地項目啓動,然後向本地服務發起請求來進行 Debug 調試代碼,這也是開發人員最常見的調試操作。但是當項目逐漸成型,慢慢的將各個模塊部署到服務器後,調試的手段可能就僅僅剩下查看執行日誌了。然而和本地 De

原创 MySQL高級 —— 查詢性能優化

 引言 承接《MySQL高級 —— 高性能索引》,本篇博客將圍繞《高性能MySQL(第三版)》第六章內容進行總結和概括。 與索引的部分一樣,SQL優化也是廣大程序員深入MySQL的又一條必經之路。希望通過本篇博客的總結,能夠爲我們成爲“高