原创 【MySQL】(五)索引與算法

本篇文章的主旨是對InnoDB存儲引擎支持的索引做一個概述,並對索引內部的機制做一個深入的解析,通過了解索引內部構造來了解哪裏可以使用索引。 1、InnoDB存儲引擎支持以下幾種常見的索引: B+樹索引 全文索引 哈希索引

原创 【2018.5.5】北京實習經驗總結篇

1、技術學習 odp 入職之後學習的第一樣技能就是怎樣在odp框架下進行開發,包括解壓odp環境,啓動nginx,php,index.php文件進行端口配置等。app下放項目開發目錄,conf中放配置文件,log中放日誌文件等

原创 【MySQL】(七)事務

我的個人博客 http://www.haxianhe.com/ 數據庫系統引入事務的主要目的:事務會把數據庫從一種狀態轉換爲另一種一致狀態。在數據庫提交工作時,可以確保要麼所有修改都已經保存了,要麼所有修改都不保存。 In

原创 【MySQL】(六)鎖

開發多用戶、數據庫驅動的應用時,最大的一個難點是:一方面要最大程度地利用數據庫的併發訪問,另一方面還要確保每個用戶能以一致的方式讀取和修改數據。爲此就有了鎖(locking)的機制,同時這也是數據庫系統區別於文件系統的一個關鍵特

原创 系統設計和架構之基礎

性能 性能指標 響應時間 指某個請求從發出到收到響應消耗的時間。 在對響應時間進行測試時,通常採用重複請求的方式,然後計算平均響應時間。 吞吐量 指單位時間內系統處理的請求數量。 TPS:每秒事務數 QPS:每秒查詢數 HPS:

原创 關於搭建開發環境

我相信很多人剛接觸編程的時候都會有這經歷“想要搭建一個完美的,完全有自己掌握的開發環境”,從而在這上邊花費大量的時間,得不償失。 “工欲善其事,必先利其器”,在學習一門新的語言或者技術的之前,總是要先搭建並熟悉開發環境,但是總是有

原创 分佈式系統唯一ID生成方案淺析

分佈式系統唯一ID生成方案淺析 在複雜分佈式系統中,往往需要對大量的數據和消息進行唯一標識。業務ID需要滿足的要求如下 全局唯一性:不能出現重複的ID號,既然是唯一標識,這是最基本的要求。 趨勢遞增:在MySQL InnoDB引

原创 MySQL總結之數據類型

整數類型 有兩種類型的數字:整數和實數。如果存儲整數,可以使用這幾種整數類型:TINYINT,SMALLINT,MEDIUMINT,INT,BIGINT。分別使用8,16,24,32,64位存儲空間。它們可以存儲的值的範圍從-2^

原创 MySQL總結之索引

索引是存儲引擎用於快速找到記錄的一種數據結構。 索引對於良好的性能非常關鍵。尤其是當表中的數據量越來越大時,索引對性能的影響愈發重要。在數據量較小且負載較低時,不恰當的索引對性能的影響可能還不明顯,但當數據量逐漸增大時,性能則會急

原创 Session 原理解析

Session存在的意義,估計每個做web開發的人都是瞭解的,就爲了解決HTTP是無狀態協議所帶來的問題,不多說了。這裏主要想說的是服務端與客戶端是如何利用session進行交互的。 工作流程 先看下面這幅流程圖: 當用戶第一次

原创 PHP 常見概念

MVC MVC是一個設計模式,它強制性的使應用程序的輸入、處理和輸出分開。使用MVC應用程序被分成三個核心部件:模型(M)、視圖(V)、控制器(C),它們各自處理自己的任務。 視圖:視圖是用戶看到並與之交互的界面。對老式的We

原创 MySQL總結之MySQL架構

MySQL 最重要、最與衆不同的特性是它的存儲引擎架構,這種架構的設計將查詢處理及其他系統任務和數據的存儲/提取相分離。這種處理和存儲分離的設計可以在使用時根據性能、特性,以及其他需求來選擇數據存儲的方式。 MySQL 的邏輯架構

原创 MySQL總結之InnoDB事務實現

我們都知道事務的幾種性質,數據庫爲了維護這些性質,尤其是一致性和隔離性,一般使用加鎖這種方式。 同時數據庫又是個高併發的應用,同一時間會有大量的併發訪問,如果加鎖過度,會極大的降低併發處理能力。 所以對於加鎖的處理,可以說就是數

原创 技術基礎之 MySQL

存儲引擎 InnoDB InnoDB 是 MySQL 默認的事務型存儲引擎,只要在需要它不支持的特性時,才考慮使用其他存儲引擎。 InnoDB 採用 MVCC 來支持高併發,並且實現了四個標準隔離級別(未提交讀、提交讀、可重複讀

原创 爲什麼MySQL字段要設置爲NOT NULL?

平時開發過程中,MySQL 字段的一般都會設置爲NOT NULL,原因如下: 1、空值("") 和 “NULL” 的區別: 空值是不佔用空間的 MySQL中的NULL其實是佔用空間的 NULL columns require