原创 MySQL數據庫臨時提高性能的方法

MySQL數據庫臨時提高性能的方法短連接風暴慢查詢問題參考文獻 短連接風暴   連接數量超過max_connections時,新來的連接會被拒絕。這時有一些臨時解決辦法(注意這些辦法都是有損的) kill掉那些佔用連接但未進行事

原创 MySQL並行複製策略詳解

  之前提到過,當備庫執行大事務的時候可能會造成主從延遲,除此之外,當從庫的binlog執行能力小於主庫的時候,也會造成延遲。所以我們需要儘可能的讓從庫的執行採用併發的方式。   在主庫上,事務之間通過各種鎖來控制併發執行的過程,

原创 MySQL主從一致原理

MySQL主從一致原理MySQL主從同步過程binlog日誌格式參考文獻 MySQL主從同步過程   一般MySQL的備庫會設置成read-only,以避免發生數據不一致等情況,注意這個read-only對於超級用戶無效(binl

原创 IDEA生成Java doc

在tools中選擇 generate Javadoc,然後如下配置,即可生成        UTF-8 -charset UTF-8 -windowtitle "test"       

原创 MySQL高可用機制分析

  主從複製的過程如下:     主庫執行事務記錄binlog,然後將binlog發送到從庫,最後從庫執行這個binlog。   主從延遲時間可以在從庫上使用show slave status進行查詢     主從延遲的主要原因:

原创 Java 線程狀態blocked 和 waiting 的區別

Java 線程狀態blocked 和 waiting 的區別BLOCKED狀態WAINTING狀態TIME_WAINTING狀態 BLOCKED狀態 線程處於BLOCKED狀態的場景。 當前線程在等待一個monitor lock,

原创 Java 協程

協程是啥?        我們都知道,線程是CPU調度的基本單位,但是到底設置多少個線程是很難決定的,並且如果一個線程陷入了IO等待的話,會降低整個系統的吞吐量。在Java中,每個線程對應JVM以及操作系統的一個輕量級線程。因爲stack

原创 MySQL的Redo log與binlog

MySQL的Redo log與binlogRedo logbinlog總結參考文獻 Redo log   又稱爲重做日誌。我們知道數據庫中更新數據需要訪問磁盤IO並精確找到所在的行進行操作,這一過程耗時較長,對於用戶來說體驗很差,

原创 Java try/catch的實現原理與性能

首先,try/catch怎麼寫呢?如下圖所示:               那麼try catch到底在JVM底層是如何實現的呢?               首先明確一個概念,在Java中如果不發生異常的話,try/catch其實不會

原创 Redis的設計與實現——數據結構實現之(一)字符串

Redis 數據結構實現(一)字符串        Redis採用SDS(simple dynamic string)來表示字符串,表示一個可以修改的字符串值。用在Redis的key和value中。 注意:Redis所有的key都是這個類

原创 JVM 編譯

Java宣稱自己是write once, run everywhere.那這是如何做到的呢?大部分人都會回答說是通過編譯成爲class文件然後運行JVM上,那麼是所有的情況下都這樣嗎? 自然有例外,其實總的來說,編譯在JVM代表三個不同的

原创 求一個二進制串mod 3的餘數

求一個二進制串mod 3的餘數       這是某BAT公司技術面三面的一道代碼題目,沒做出來,現在整理一波        首先,第一個思路是將這個二進制串轉換爲十進制,然後再進行計算,但是這個肯定不是面試官想要的答案,對於很長的二進制串

原创 Redis 的設計與實現——數據結構實現之(三)跳躍表與整數集合

跳躍表   首先,跳躍表是一種有序的數據結構,其查找的平均複雜度爲O(logN),最壞的時間複雜度爲O(N),大部分情況下可以與平衡樹媲美。Redis使用它作爲有序集合的實現,和集羣節點中作爲數據結構。 跳躍表的數據結構定義如下,左邊爲n

原创 MySQL如何保證數據不丟

MySQL如何保證數據不丟Binlog寫入機制Redo log寫入機制組提交技術Binlog的格式 Binlog寫入機制   事務執行過程中,先把日誌寫到binlog cache,事務提交的時候,再把binlog cache寫到b

原创 MySQL鎖與間隙鎖

  首先MySQL引入間隙鎖是爲了解決幻讀的問題。間隙鎖之間並不產生衝突,但間隙鎖與插入數據之間會產生衝突。間隙鎖的引入,可能會導致同樣的語句鎖住更大的範圍,影響併發度。MySQL加鎖的規則十分複雜並且隨着版本更新進行變動,整體的