濮阳杆衣贸易有限公司

主頁 > 知識庫 > 如何用分表存儲來提高性能 推薦

如何用分表存儲來提高性能 推薦

熱門標簽:漯河電銷回撥外呼系統 電話機器人怎么看余額 怎么修改高德地圖標注 長沙外呼系統平臺 城市地圖標志怎么標注 美國地圖標注軟件下載 合肥crm外呼系統加盟 硅基電話機器人官網 西安電話自動外呼系統

首先,童家旺介紹了他認為的什么是優(yōu)化:第一、做任何事情最快的方法就是什么也不做。

童家旺:數據存儲性能優(yōu)化的一點想法
▲支付寶資深數據庫架構師童家旺

  第二、不訪問不必要的數據:使用B*Tree/hash等方法定位必要的數據。使用column Store或分表的方式將數據分開存儲。使用Bloom filter算法排除空值查詢。

  第三、合理的利用硬件來提升訪問效率:使用緩存消除對數據的重復訪問。使用批量處理來減少磁盤的Seek操作。使用批量處理來減少網絡的Round Trip。使用SSD來提升磁盤訪問效率。

  響應時間和吞吐量之間的關系

  1、性能。衡量完成特定任務的速度或效率。

  2、響應時間。衡量系統與用戶交互式多久能夠發(fā)出響應。

  3、吞吐量。衡量系統在單位時間里可以完成的任務量。

  

  ▲反應時間

  童家旺:數據存儲性能優(yōu)化的一點想法

  ▲傳統磁盤的訪問特性

  B*Tree優(yōu)化數據訪問介紹

  童家旺:數據存儲性能優(yōu)化的一點想法

  ▲B*Tree優(yōu)化數據訪問

  B*Tree優(yōu)化數據訪問模擬場景

  童家旺:數據存儲性能優(yōu)化的一點想法

  ▲B*Tree優(yōu)化數據訪問模擬場景

  童家旺通過阿里巴巴的真實應用場景介紹了如何用分表存儲來提高性能。

  一、場景介紹:

  1、表VeryBigTable含有30個列

  2、表的記錄數為50,000,000條

  3、平均每個用戶為300條左右

  4、其中有2個列屬于詳細描述字段,平均長度為2k

  5、其它的列的總長度平均為250個字節(jié)

  6、此表上的查詢有兩種模式

  7、列出表中的主要信息(每次20條,不包含詳細信息,90%的查詢)

  8、查看記錄的詳細信息(10%的查詢)

  9、保存與Oracle數據庫,默認block_size(8k)

  二、要求:

  1、對此業(yè)務進行優(yōu)化

  2、分析數據,說服開發(fā)部門實施此優(yōu)化

  三、性能分析

  1、每塊記錄數

  8192 * 0.80(1) / 250 = 25.5 (主表)

  8192 * 0.80 / 2000 = 3.27(詳情表)

  8192 * 0.80 / ( 2000 + 250 ) = 2.91

  2、訪問的邏輯IO(內存塊訪問)

  List的查詢代價

  改進后=( 300/25.5 ) * y + 4 + x = 4 + x + 11.8y = 4(2) + 7(3) + 11.8 * 1.5(4) = 28.7

  改進前=( 300/2.91 ) * y + 4 + x = 4 + x + 103.y = 4 + 7 + 103 * 1.5 = 165.5

  3、訪問涉及到的物理讀(磁盤塊訪問)

  List的查詢代價(邏輯IO * ( 1 – 命中率 ))

  改進后=28.7 * ( 1 – 0.85(5)) = 4.305

  改進前=165.5 * ( 1 – 0.85 ) = 24.825

  4、訪問時間(ms)

  改進前=邏輯IO時間+物理IO時間= 28.7 * 0.01(6) + 4.305 * 7(7) = 30.422ms
  改進后=邏輯IO時間+物理IO時間= 165.5 * 0.01 + 24.825 * 7 = 175.43ms

您可能感興趣的文章:
  • php 分庫分表hash算法
  • MySQL 分表優(yōu)化試驗代碼
  • MySQL動態(tài)創(chuàng)建表,數據分表的存儲過程
  • 使用MySQL的LAST_INSERT_ID來確定各分表的唯一ID值
  • mysql的3種分表方案
  • php實現mysql數據庫分表分段備份
  • 1億條數據如何分表100張到Mysql數據庫中(PHP)

標簽:濟源 玉溪 商洛 撫順 廣西 文山 瀘州 吉林

巨人網絡通訊聲明:本文標題《如何用分表存儲來提高性能 推薦》,本文關鍵詞  如,何用,分表,存儲,來,提,;如發(fā)現本文內容存在版權問題,煩請?zhí)峁┫嚓P信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《如何用分表存儲來提高性能 推薦》相關的同類信息!
  • 本頁收集關于如何用分表存儲來提高性能 推薦的相關信息資訊供網民參考!
  • 推薦文章
    巴塘县| 芜湖市| 封丘县| 云南省| 揭阳市| 天全县| 浏阳市| 荥阳市| 林州市| 高陵县| 株洲市| 东宁县| 林周县| 竹山县| 尚志市| 监利县| 揭阳市| 普定县| 青铜峡市| 鸡西市| 巴青县| 裕民县| 屏东市| 遂川县| 洪雅县| 双柏县| 开江县| 彭阳县| 玉树县| 渭源县| 昌吉市| 藁城市| 谢通门县| 新竹县| 定日县| 江门市| 曲阜市| 庐江县| 旺苍县| 保山市| 台江县|