原创 MySql數據庫併發事務的底層實現:表鎖、行鎖、間隙鎖、死鎖

目錄   1 MyISAM表鎖 1.1 MyISAM表級鎖 1.2 MyISAM併發插入 1.3 MyISAM的鎖調度 2 InnoDB行鎖 2.1  InnoDB行鎖機制 2.2  注意問題 3 間隙鎖 4 InnoDB死鎖 1 MyI

原创 三行代碼求二叉樹的節點個數以及二叉樹的深度

二叉樹的節點格式如下: struct BinaryTreeNode { int m_nValue; BinaryTreeNode* m_pLeft; BinaryTreeNode* m_pRight; }; 1.求二叉樹的節點個數

原创 MySql數據庫事務處理

1 事務的概念 一個事務是由一條或者多條對數據庫操作的SQL語句所組成的一個不可分割的單元,只有當事務中的所有操作都正常執行完了,整個事務纔會被提交給數據庫;如果有部分事務處理失敗,那麼事務就要回退到最初的狀態,因此,事務要麼全部執行成功

原创 MySql數據庫優化:應用優化和MySql Server優化

目錄 1 應用優化 1.1 連接池 1.2 增加Cache緩存層 2 MySql Server優化 2.1 MySql查詢緩存 2.2 索引和數據緩存 2.3 MySql線程緩存 2.4 連接數量和超時時間 1 應用優化 除了優化MySQ

原创 MySql數據庫優化之SQL和索引的優化

索引的優化是面試中數據庫部分可以說是必問的問題,這個和平時的積累有關。本文詳細介紹了SQL和索引的優化。     目錄 1 索引的執行分析 1.1 單表的查詢索引的執行過程及優化-普通查詢 1.2 單表查詢索引的執行過程以及優化-普通查詢

原创 MySql數據庫索引詳解,索引看這一篇就夠了

目錄 1 爲什麼要使用索引? 2 索引的分類 3 索引的創建和刪除 4 索引的執行過程 5 索引的底層實現原理 6 主鍵索引,輔助索引,聚集索引,非聚集索引 6.1 MyISAM存儲引擎-主鍵索引 6.2 MyISAM存儲引擎-輔助索引

原创 驚!MySql數據庫插入、更新與刪除數據居然這麼簡單

目錄 1 插入數據 1.1 爲表的所有字段插入數據 1.2 爲表的指定字段插入數據 1.3 同時插入多條數據 1.4 將查詢結果插入到表中 2 更新數據 3 刪除數據 在內容開始之前,先來創建一個表,如下圖所示: 、 下面的插入、更新和刪

原创 MySql數據庫表操作:創建表、刪除表、查看錶、修改、查詢表(詳細)、設置表的字符編碼

目錄 1 創建表 1.1 設置表的主鍵 1.2 設置表的外鍵 2 刪除表 3 查看錶 4 修改表 4.1 修改表名 4.2 修改字段的數據類型 4.3 修改表的字段名 4.4 增加字段 5 查詢表 5.1 帶in子的查詢 5.2 帶BET

原创 詳談數據庫泛型:第一、二、三、四和BCN範式

目錄 1 什麼是數據庫泛型? 2 第一範式:無重複的列 3 第二範式:屬性完全依賴於主鍵(針對聯合主鍵) 4 第三範式:屬性不依賴於其他非主屬性 5 BCN範式:每個表中只有一個候選鍵 6 第四範式:消除表中的多值依賴 7 詳細舉例 1

原创 MySql數據庫操作:創建數據庫、刪除數據庫和數據庫存儲引擎

聲明:本文內容參考書籍《MySql入門很簡單》 目錄 1 創建數據庫 2 刪除數據庫 3 數據庫存儲引擎 3.1 InnoDB 3.2 MyISAM 3.3 MEMORY 3.4 存儲引擎的選擇 首先數據庫是指長期存儲在計算機內、有組織的

原创 MySql數據類型和運算符總結

MySQL作爲關係型數據庫,在二維表中存數據,肯定要規定數據的類型,類型規定了數據的大小,因此使用的時候選擇合適的類型,不僅會降低表佔用的磁盤空間,間接減少了磁盤I/O的次數,提高了表的訪問效率,而且索引的效率也和數據的類型息息相關。 目

原创 淺談Linux-I/O複用【select、poll、epoll】+詳細使用示例

目錄 1 爲什麼要進行I/O複用? 2 select 3 poll  4 epoll(linux特有) 4.1 epoll介紹與示例 4.2 LT模式和ET模式 5 select、poll和epoll的區別 本文中的代碼示例建議實踐一遍。

原创 淺談TCP擁塞控制:慢啓動和擁塞避免、快速重傳和快速恢復

目錄 1 擁塞的概念 2.流量控制:滑動窗口 3 擁塞控制 3.1 慢啓動 3.2 擁塞避免 3.3 快速重傳  3.4 快速恢復   聲明:以下圖片來源於網絡 1 擁塞的概念 在這裏我引用百度百科上面的概念: 擁塞是指到達通信子網中某一

原创 Boost::timer庫詳解

Boost是一個功能強大、構造精巧、跨平臺、並且完全免費的C++程序庫,有着C++“準標準庫”的美譽。 目錄 1 timer概述 1.1 timer組件的介紹 1.2 progress_timer介紹 1.3 progress_displ

原创 臭名昭著的三次握手和四次揮手

爲什麼說臭名昭著呢?是因爲三次握手和四次揮手幾乎是面試必問的問題。爲了能更好的記憶,我儘量以最簡潔的語言陳述。 目錄 TCP報文格式 三次握手 爲什麼是三次? 四次揮手 爲什麼是四次? TIME_WAIT狀態的意義 聲明:以下圖片來源於網