首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫

MySQL vs Oracle 選型深度思考:為什麼 Yahoo 關鍵付費數據選 Oracle?

     編輯:MySQL 資料庫相關知識

從 Yahoo 架構選型看 MySQL 與 Oracle 的定位差異

LAMP 大會上 Yahoo 技術高管透露選型邏輯:**大多數場景用 MySQL (性能達標);存儲付費用戶數據選 Oracle。** 原因不是穩定性,而是**商業責任歸屬**——出問題 Oracle 負責,MySQL 找誰?

PHPer「草根」標籤的根源

  • PHP 入門快、處理數據方便,但長期被視為「表現層」工具,缺乏底層數據結構/演算法深度。
  • Web 架構中:前端負載均衡 → 中間 Web Server (PHP) → 後端資料庫。PHP 多做「取數據→輸出」薄邏輯。
  • 數據庫承擔了排序、查找、索引等核心數據處理,PHP 程式員鮮少接觸演算法實作。
  • 無級分類例子:PHPer 用遞歸 SQL 查詢 (資料庫邏輯);C 程式員取數據後用資料結構在記憶體處理 (應用層邏輯)。後者被視為「硬核」。

資料庫瓶頸與架構演進

  • Zend 工程師指出:PHP 運行佔 10% 以下,90% 在等資料庫查詢。
  • 流量激增時,資料庫回應指數級下降,成系統瓶頸。
  • 緩解方案:Caching (資料有效期、查找、更新複雜) + 靜態化 (首頁靜態化只需硬碟夠大)。
  • 大型公司架構:資料庫外掛「第二資料庫」(緩存系統),用 SQL 查詢緩存,Web 直接讀緩存,**90%+ 請求不碰主資料庫**。

正確看待資料庫角色

**資料庫 = 高可靠備份機**,核心職責是數據存儲有效性。
將排序、查找、業務邏輯過度下推給資料庫,導致資料庫成為單點瓶頸。
**正確架構**:應用層處理業務邏輯與熱數據緩存,資料庫專司持久化備份與冷數據查詢。

結論

  1. MySQL 適合非核心、高讀寫、可容忍風險的業務。
  2. Oracle 等商業資料庫適合核心付費、需廠商負責 SLA 的關鍵系統。
  3. PHPer 想脫離「草根」,必須深入理解數據結構、演算法、緩存架構、分庫分表,而非止步於 SQL 語法。
  4. 有實力的公司 (如 Google) 自研資料庫系統,跳出通用資料庫限制。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved