原创 日常笑話一

封裝性?不存在的,面向對象什麼的,真是討厭啊。

原创 初識SpringBoot單元測試

1. 測試Service 首先我們寫出service層的代碼: package com.example.demo.service; import com.example.demo.dao.OrderDao; import com.exam

原创 利用Spring和ShardingSphere構建分庫分表

1. 概述 業務發展到一定程度,分庫分表是一種必然的要求,分庫可以實現資源隔離,分表則可以降低單表數據量,提高訪問效率。 分庫分表的技術方案,很久以來都有兩種理念: 集中式的Proxy,實現MySQL客戶端協議,使用戶無感知 分佈式的Pr

原创 老宅逢故人

我不見妤,已是十年。 這天因爲偶爾要回老房子收拾東西,鄰居孫姨看見我,高興地拉着我,端詳了好久,說了好些不着邊際的話,大抵是些我長高了,也壯了這類的話,也有打聽我最近什麼工作之類的話,甚是無趣。我正思索着要尋個藉口趕緊逃離,不料孫姨說了一句

原创 Spring Cloud學習筆記--服務註冊和發現

1. 微服務 很多年前我剛剛工作的時候也是一個程序員,那個時候我參與了單位的項目,是其中的一顆螺絲釘。我們的項目是一個典型的單體架構,採用了經典的三層模型,我到現在還記得我師父給我講了一下午三層模型。 表示層:負責和用戶進行交互,表現爲W

原创 入坑MySQL組複製

1. MySQL複製技術簡介 1.1 MySQL複製技術的簡介 MySQL的複製經歷瞭如下幾個階段: 異步複製:最傳統的複製集羣採用的就是這種形式的複製,Master只負責通知Slave取binlog,但是是否正確取走並回放Master是

原创 學習RadonDB源碼(八)

語法解析 我們DBA平時通過SQL和數據庫進行交互。SQL是一門典型的第四代語言,只用說明我要什麼,而不需要寫出來我要怎麼做,這一點在之前的文章中講過。 既然有查詢優化器,那麼一定要首先有一個翻譯的地方存在,將SQL翻譯成一種優化器能懂的語

原创 一次單核CPU佔用過高問題的處理

案例 客戶現場反饋,top的檢查結果中,一個CPU的佔用一直是100%。實際上現場有4個CPU,而且這個服務器是mysql專屬服務器。 我的第一反應是io_thread一類的參數設置有問題,檢查以後發現read和write的thread設置

原创 一次子查詢的優化實例

現象 有這麼一張表: create table test ( nodeId int, flowId int, other varchar(10), primary key (nodeid),

原创 自定義函數帶來的性能問題優化實例

現象描述 首先描述一下表結構: create table test ( id int primary key, account varchar(32), busiTime datetime, status

原创 MySQL的日誌體系

1. Redo Log 熟悉MySQL InnoDB引擎的人都知道,InnoDB有一個最重要的概念就是緩衝池,這是在內存中分配的一個區域,InnoDB會將數據首先緩存在此,請求首先去命中緩衝池,無法命中緩衝池的纔會在磁盤上進行檢索,被檢索到

原创 Go語言之通道(三)

通道是一個很重要的概念,用於goroutine間通信的,而且這種方式還能玩出很多新花樣來,比如搞一個通道出來。下面來實現一個《Go程序設計語言》中的一個通道的例子: package main import "fmt" func main

原创 學習RadonDB源碼(七)

1. 準備收官 RadonDB作爲一款優秀的分佈式數據庫產品,離不開這幾大組件: 存儲 計算 RadonDB的存儲由MySQL存儲節點提供,這很正常,這些存儲節點還負責了計算工作。從這個角度上來說,RadonDB還不是很典型的分佈式數據

原创 Raft算法學習(一)

今天要寫的一切都來自於這篇論文: In Search of an Understandable Consensus Algorithm 1. 拉貝什島的民主嘗試 話說有一天,川普帶着幾個人去拉貝什(The rubbish island)島曬