## 如何設計
>問:假設有一個包含Tag功能的博客系統,數據庫存儲采用mysql,用戶數量為1000萬,預計文章總數為10億,每天有至少10萬的更新量,每天訪問量為5000萬,對數據庫的讀寫操作的比例超過10:1。你如何設計該系統,以確保其系統高效,穩定的運行?(提示:可以從數據庫設計,系統框架,及網絡架構方面進行描述,可以寫代碼/偽代碼輔助說明)
>答:讀寫分離,讀寫服務器比例10:1,
使用分頁查詢減少數據庫壓力,靜態化分頁后使用memcache分布式緩存,減少i/o開銷和數據壓力,
增刪改時刪除對應的靜態化數據,通過查詢分頁,分開靜態化對應的分頁信息緩存,
數據庫分庫分表分區,使用lvs負載均衡,活躍和不活躍的文章進行分表存儲,
提高數據庫中文章查詢效率,建立聯合索引,提高查詢效率,使用中文分詞技術提高文章內容的查詢效率!
## 如何搭載一個日PV300W的中型網站
場景介紹:假設給您5太服務器,請大致描述一下,如何使用您所熟悉的開源軟件, 如何搭載一個日PV300W的中型網站!
我們應該這么操作:
1、5臺服務器,應該3臺應該設置為web服務器;2臺設置為 mysql數據庫服務器!
2、3臺Web服務器可以結合Memcache緩存來減少負載!
3、2臺mysql服務器采用Master/Slave同步的方式減輕數據庫負載!
4、3臺Web服務器內容一致,采用DNS進行負載均衡!
- PHP獲取客戶端瀏覽器信息和版本
- PHP獲取客戶端操作系統信息
- 無限級分類
- git使用
- 權限檢測思路
- Vue學習
- 遇到的一些問題
- PHP的編碼思維和技巧
- mysql復習
- tp5
- ThinkPHP5.x 公共函數
- TP5登錄注冊
- TP5使用模板繼承
- ThinkPHP5.1 清除緩存
- thinkphp5實現安裝程序
- 安全
- tp中實現跨域代碼
- ThinkPHP5.1配合pjax實現菜單欄無刷新跳轉
- 獲取數據庫版本和數據庫大小
- 模型的基本CURD操作
- 商品spu
- 全局異常處理類
- ExceptionHandler
- BaseException
- PHP函數之error_reporting(E_ALL ^ E_NOTICE)詳細說明
- 微信小程序
- wx:for
- tp6
- 分離的一些模塊
- session開啟
- Spring
- 依賴注入
- 數據結構
- 二叉樹
- js獲取地址欄變量
- PHP設計模式
- 面向對象
- PHP1
- PHP性能優化
- Java學習
- static關鍵字
- 多態
- 接口、階乘
- 大佬給的面試題
- 訪問量為5000萬的博客系統設計
- PHP可變參數
- Nginx的配置案例
- 求數組中的最大值,并返回數組索引
- PHP面試方向
- PHP數組工具類ArrUtil
- 字符串工具類StrUtil
- PHP使用curl發送請求
- mysql
- PHP上傳base64圖片處理函數
- webstorm小程序常用配置
- 郵箱正則表達式
- leetcode mysql記錄
- 函數庫