博客 / 列表

Zeran - 更好的創建和使用Mysql索引

表結構 CREATE TABLE single_table( id int not null auto_increment, key1 VARCHAR(100), key2 int, key3 VARCHAR(100), key_part1 VARCHAR(100), key_part2 VARCHAR(100), key_part3 VAR

MySQL , mysql索引

Zeran - Mysql單表訪問方法

訪問方法的概念 設計MySQL的大叔把MySQL執行查詢語句的方式稱為訪問方法(access method)或者訪問類型。同一個查詢語句可以使用多種不同的訪問方法來執行,雖然最後的查詢結果都是一樣的,但是不同的執行方式話費的時間成本可能差距甚大。就像是從北京南鑼鼓巷到什剎海,你可以打車去,也可以坐地鐵去,坐公交去,還可以騎共享單車去,當然也可以走着去。 表結構 CREATE TABLE singl

MySQL , mysql索引 , mysql優化

Zeran - Mysql連接的原理

表結構 t1 CREATE TABLE `t1` ( `m1` int(11) DEFAULT NULL, `n1` char(1) COLLATE utf8mb4_bin DEFAULT NULL ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_bin; INSERT INTO `t1`(`m1`, `n1`) VALUE

mysql索引 , mysql優化 , SQL

Zeran - Mysql工作面試老大難——鎖

解決併發事務帶來問題的兩種基本方式 併發事務訪問相同記錄的情況可以劃分為3種。 讀 - 讀情況:併發事務相繼續讀取相同的記錄。讀取操作本身不會對記錄有任何影響,不會引起什麼問題,所以允許這種情況的發生。 寫 - 寫情況:併發事務相繼對相同的記錄進行改動。 讀 - 寫或寫 - 讀情況:也就是一個事務進行讀取操作,另一個事務進行改動操作。 寫 - 寫情況 在寫 - 寫情況下會發生髒寫的現象,

MySQL , innodb , , mysql優化

Zeran - JVM-談談四種引用類型?

有哪些引用類型? 在JDK1.2版之後,Java對引用的對象進行了擴充,將引用分為強引用(Strongly Reference)、軟引用(Soft Reference)、弱引用(Weak Reference)和虛引用(Phantom Reference)4種,這4種引用強度依次減弱。 強引用是最傳統的 "引用" 的定義,是指在程序代碼之中普遍存在的引用賦值,即類似 "Object obj =

引用 , jvm , 垃圾回收 , JAVA

Zeran - 事務隔離級別和MVCC

事務隔離級別 事務併發執行時遇到的一致性問題 髒寫 如果一個事務修改了另一個為提交事務修改過的事務,就意味着發生了髒寫現象。我們可以把髒寫現象簡稱為P0.假設現在事務T1和T2併發執行,它們都要訪問數據項x(可以把數據項x當作一條記錄的某個字段)。那麼P0對應的操作執行序列如下所示: p0: w1[x]...w2[x]...((c1 or a1) and (c2 or a2) in any ord

MySQL , innodb , 事務 , mvcc

Zeran - Mysql-undo日誌

回滾段相關配置 配置回滾段數量 mysql系統中共有128個回滾段。其實這是默認值,我們可以通過啓動選項innodb_rollback_segments 來配置回滾段的數量。針對臨時表的回滾段數量一直是32,也就是説: 如果把innodb_rollback_segments的值設置為1,那麼只會有1個針對普通表的可回滾段(1024個undo slot),但是仍然有32個針對臨時表的可用回滾段;

MySQL , innodb , 回滾 , undo

Zeran - Buffer Pool

Inndb的Buffer Pool 簡介 BufferPool組成 free鏈表的管理 緩衝頁的哈希處理 flush鏈表的管理 LRU鏈表的管理 查看Buffer Pool的狀態信息

MySQL , innodb , bufferpool

Zeran - 如何選擇一款適合自己應用的垃圾收集器呢?

垃圾收集器選型因素 應用程序的主要關注點是什麼?如果是數據分析、科學計算類的任務,目標是儘快算出結果,那吞吐量就是主要關注點;如果是SLA應用,那停頓時間直接影響服務質量,嚴重的甚至會導致事物超時,這樣延遲就是主要的關注點;而如果是客户端應用或者嵌入式應用,那垃圾收集的內存佔用則是側重點。 運行應用的基礎設施如何?譬如硬件規格,要設計的系統時x86-32/64、SPARC還是ARM/Aarc

jvm , 垃圾回收

Zeran - JVM-解析Class文件示例

準備 class文件是Java虛擬機唯一可以識別的文件,根據Class文件我們可以完成一個程序的運行,本節文章是本人解析一個基本Class文件的全過程,記錄在此,希望能提供給正在前進路上的同學作為輔助作用,下面是我們要解析Class文件必要條件。 代碼 以下是一個簡單的Java類,一個私有變量,一個公開方法。 public class TestClass { private int a;

JAVA , class

Zeran - 編譯Java虛擬機

編譯前準備 安裝hg版本控制 yum install -y hg 安裝依賴庫 yum install -y "Development Tools" yum install -y gcc g++ kernel-devel yum? -y install libXtst-devel libXt-devel libXrender-devel libXi-devel 準備JDK 為編譯虛擬機,首先必須獲得

jvm虛擬機 , jvm , jvm調優 , JDK

Zeran - Class文件結構

初始class文件 Java類文件是包含可在Java 虛擬機 (JVM)上執行的Java 字節碼的文件(具有.class 文件擴展名)。Java 類文件通常由Java 編譯器根據包含 Java 類的 Java 編程語言源文件(.java文件)生成(或者,其他JVM 語言也可用於創建類文件)。如果一個源文件有多個類,則每個類都被編譯成一個單獨的類文件。 Java虛擬機不包括Java語言在內的任

jvm , classloader , JAVA , class

Zeran - 為什麼不直接@Autowired注入交由spring容器管理的Bean,而是選擇構造注入?

autowire注入方式,在spring4.0後不推薦,原因是可能會造成循環依賴的問題推薦採用構造器或者setter方法注入,示例: private final Init init; @Autowired public DepositServiceImpl(Init init) { this.init = init; } @Autowired和構造方法執行的順序解析 先看一段

spring , autowired , JAVA , bean , get

Zeran - Java中字符流和字節流讀寫

Java中讀取文件中的內容的幾種方式如下: 讀取文件 字符流讀寫 public class CharacterIoUtil { private static final Logger log = Logger.getLogger("com.yzr.io.CharacterIoUtil"); private static Integer len; private static

filereader , file , JAVA , java-web , inputstream