原创 設計模式——單例模式C++實現

引出問題: 設計一個類,我們只能生成該類的一個對象實例。 不好的解法:只適用於單線程環境 因爲該類只能生成一個對象實例,那麼該類的構造函數必須是私有的,從而避免他人創建實例。在需要的時候創建該類的一個對象。 下面是程序實現:

原创 C/C++——跟我重寫智能指針auto_ptr模版類

第一次使用auto_ptr的時候感覺很好用,但是對內部原理根本不懂,心裏不知道這東西到底是個什麼東東,總是感覺這東東比較陌生。今天有時間來簡單實現一下該類模版auto_ptr,實現了該模版類的主要功能,可以讓大家瞭解一下這個東東內部到底是

原创 MySql體系結構和存儲引擎

一、數據庫和數據庫實例 數據庫是文件的集合,是依照某種數據模型組織起來並存放於二級存儲器中的數據集合; 數據庫實例是程序,是位於用戶與操作系統之間的一層數據庫管理軟件,用戶對數據庫數據的任何操作,包括數據庫定義、數據查詢、數據維護

原创 InnoDB存儲引擎——內存

上圖是InnoDB存儲引擎的結構。 1、緩衝池 InnoDB存儲引擎是基於磁盤存儲的,並將其中的記錄按照頁的方式進行管理。因此可以看作是基於磁盤的數據庫系統。在數據庫系統中,由於CPU速度和磁盤速度之間的鴻溝,基於磁盤的數據庫系

原创 InnoDB存儲引擎——兩次寫

Insert Buffer給InnoDB存儲引擎帶來的是性能上的提升,doublewrite(兩次寫)給InnoDB存儲引擎帶來的是數據頁的可靠性。 當數據庫發生宕機時,可能InnoDB存儲引擎正在寫入某個頁表中,而這個頁只寫了一

原创 Centos7.0安裝MySql數據庫詳細步驟

按照網上的命令安裝了好幾次,都不行。最終發現centos7的yum源中貌似沒有正常安裝mysql時的mysql-server。 那麼就需要從官網下載了。 下面是安裝mysql的命令: # wget http://dev.mysql.com

原创 InnoDB存儲引擎——Master Thread工作方式

Master Thread是InnoDB存儲引擎非常核心的一個後臺線程,主要負責將緩衝池中的數據異步刷新到磁盤,保證數據的一致性,包括髒頁的刷新、合併插入緩衝、UNDO頁的回收等。 InnoDB 1.0.x版本之前的Master

原创 InnoDB存儲引擎——插入緩衝

InnoDB存儲引擎的關鍵特性包括: 插入緩衝(Insert Buffer) 兩次寫(Double Write) 自適應哈希索引(Adaptive Hash Index) 異步IO(Async IO) 刷新鄰接頁(Flush N

原创 01高併發系統:通用設計方法

01高併發系統:通用設計方法1 應對大流量的方法1.1 橫向擴展1.2 緩存1.3 異步處理 1 應對大流量的方法 1.1 橫向擴展 分而治之的思想,採用分佈式部署的方式把流量分開,讓每個服務器都承擔一部分併發流量。 如下圖所示,

原创 Centos安裝tmux步驟

安裝libevent wget https://github.com/downloads/libevent/libevent/libevent-2.0.21-stable.tar.gz tar xzvf libevent-2.0.

原创 InnoDB存儲引擎——自適應哈希索引

哈希(hash)是一種非常快的查找方法,在一般情況下這種查找的時間複雜度爲O(1),即一般僅需要一次查找就能定位數據。 而B+樹的查找次數,取決於B+樹的高度,在生產環境中,B+樹的高度一般爲3~4層,所以需要3~4次的查詢。

原创 Webbench網站壓測工具

Webbench是一個在Linux下使用的非常簡單的網站壓測工具。他本身是一個單進程,使用fork()模擬多個客戶端同時訪問我們設定的url,用來測試網站在壓力下的性能。最多可以模擬3萬個併發連接去測試網站的負載能力。Webben

原创 Application failed to start because it could not find or load the QT platform plugin “windows”

The error is caused because the program can't find qwindows.dll qwindows.dll has to be in a folder named platforms 

原创 InnoDB存儲引擎——Checkpoint技術

爲什麼需要Checkpoint技術 InnoDB存儲引擎中的緩存池的目的是協調CPU速度和磁盤速度的差別。數據庫對數據頁的操作首先都是在緩衝池中完成的。如果一條DML語句,如update和delete改變了頁中的記錄,那麼該頁變爲

原创 InnoDB存儲引擎——後臺線程

1、InnoDB存儲引擎概述 InnoDB存儲引擎是第一個完整支持ACID事務的MySql存儲引擎,其特點是行鎖設計、支持MVCC、支持外鍵、提供一致性非鎖定讀,同時被設計用來最有效地利用以及使用CPU和內存。 2、InnoDB體