-
sql語句大全之SQLServer性能優化之---存儲優化系列
- 2018-11-28 16:41 來源:未知
水平分庫分表和垂直分庫分表,大家都經常談,我說下我的理解,看圖:
垂直分表就不用說了,基本上會SQLServer的都會。
垂直分庫就是根據業務需求來分庫,比如教育系列的,可以分為資訊,課程,用戶(學生,學校)三個數據庫。比如電商的可以分為訂單,商品,用戶(商家,消費者)三個數據庫。這邊只是舉個例子,具體的你得根據你們自己業務的實際情況來分,不是分的越多越好,最好是遇到瓶頸了再去做這些事情(這個過程才能學到很多東西)
水平分表主要就兩種方法,Hash取余法和時間路由法。我重點說下時間路由的方法,這種方案后期擴容和歷史數據抽離【結合列索引更勁爆哦~】比較方便。
舉個簡單的路由表:(時間你可以用傳統的格式,我這邊用的是時間軸)
這個是文章表的時間路由表,每次查詢文章的時候根據查詢的時間看看
比如我現在準備寫入數據,當前時間 2016/11/18 16:37:29 ==》1479458249
select RTableName from Route_Article where where 1479458249 between RCreateTime and REndTime
就可以知道我應該往哪個表里面寫數據:==》Article2
同理,想查詢某個時間的數據也是可以通過路由表知道該往哪個表里面查詢
水平分庫之前提了一下文件組(http://www.cnblogs.com/dunitian/p/5276431.html)后面還會有一篇文章進行擴展說明(http://www.cnblogs.com/dunitian/p/6078512.html),這邊就不說了。
其實企業里面用的最多的是復合型的,比如:水平分庫分表 ,水平分庫+垂直分庫+分表
真的有了這方面的瓶頸的話水平分表一般只能緩解,并不能真正解決,畢竟還是在一臺服務器上。單表的數據量是減少了,但是IO,連接數,帶寬之類的瓶頸并不能有多大的改善。
水平分庫分表可以把IO瓶頸解決一部分,優化效果還是很明顯的:
水平分庫+垂直分庫+分表,這個方案可以利用鏈接服務器,這樣路由表就不用改了,把路由表的表名改成完整的名稱(后面會說更好的方法)
先設置一下鏈接服務器。我自己摸索的這個方法可能和網上的不太一樣,不要慌(沒辦法,我按照網上的沒成功啊+_+)
這個感覺挺好的,一般情況下都是沒問題的,但是遇到數據庫名字或者表改了就蛋疼了,得改多少東西??關鍵是不太方便,名字那么長。。。===》so,引入了同義詞
create synonym Article for [192.168.1.250].[BigValues].[dbo].[Article]
再看看效果吧:
是不是感覺特簡單
---------------------
作者:開發10室劉偉強
來源:CSDN
原文:https://blog.csdn.net/qq_34246965/article/details/82191744
版權聲明:本文為博主原創文章,轉載請附上博文鏈接!
最新更新
Python 中 str.format() 方法詳解
unittest的TestCase類提供的判斷方法
python基礎教程之unittest模塊(單元測試)
python基礎教程之Python的特點(優點和缺點
python基礎教程之Python是什么,Python簡介
python基礎教程之編譯型語言和解釋型語言
python基礎教程之編程語言是什么
python基礎教程之Python assert斷言函數及用法
python基礎教程之Python 文件 truncate() 方法
python基礎教程之Python 文件 write() 方法
基于UDP的服務器端和客戶端
再談UDP和TCP
在socket編程中使用域名
網絡數據傳輸時的大小端問題
socket編程實現文件傳輸功能
如何優雅地斷開TCP連接?
圖解TCP四次握手斷開連接
詳細分析TCP數據的傳輸過程
圖解TCP數據報結構以及三次握手(非常詳
TCP協議的粘包問題(數據的無邊界性)
sql語句大全之Microsoft SQL Server 2012安裝說明
sql語句大全之隨機姓名生成方法
sql語句大全之SQL干貨筆記
access數據庫之隨說秋色園從Access升遷到
access數據庫之微信公眾平臺開發(26) ACCE
access數據庫之ACCESS TOKEN
access數據庫之當爬蟲被拒絕時(Access Deni
access數據庫之當爬蟲被拒絕時(Access Deni
access數據庫之使用PowerDesigner生成Access數據
access數據庫之讓ADO.NET Entity Framework 支持