http://www.vxbq.cn/db/水平擴大與垂直擴大
在http://www.vxbq.cn/Internet/利用中,http://www.vxbq.cn/db/常常是我們存儲和訪問數(shù)據(jù)的經(jīng)常使用介質。隨著負載的增大,對http://www.vxbq.cn/db/讀寫性能的要求常常成為很大的挑戰(zhàn)。在這類情況下我們可以斟酌http://www.vxbq.cn/db/相干的replication機制提高讀寫的性能。由于1般采取1寫多讀的replication機制(寫master同步到多個slaves),致使這樣的機制常常會有缺點。首先它依賴于讀寫的比例,如果寫的操作過量,致使master常常成為性能的瓶頸所在,從而使得slaves的數(shù)據(jù)同步延遲也變大,進而大大消耗CPU的資源,并且致使數(shù)據(jù)的不1致從而影響到用戶的體驗。
這個時候我們就要斟酌使用http://www.vxbq.cn/db/的sharding(分片)機制,這里面我們所說sharding機制其實不是1個http://www.vxbq.cn/db/軟件的附屬功能,而是1種相對簡樸的軟件理念。1般我們把sharding機制分成水平擴大(橫向擴大,或向外擴大)和垂直擴大兩種方式。具體甚么是http://www.vxbq.cn/db/的水平擴大和垂直擴大呢?我們以下面的例子來講明。
比如我們現(xiàn)在有兩個表:用戶信息表 產品定單表
水平的拆分的方案,即不修改http://www.vxbq.cn/db/表結構,通過對表中數(shù)據(jù)的拆分而到達分片的目的:
1)使用用戶id做hash,分解http://www.vxbq.cn/db/,在訪問http://www.vxbq.cn/db/的使用用戶id做路由。
2)將產品定單表依照已下單和未下單辨別成兩個表。
1般水平拆分在查詢http://www.vxbq.cn/db/的時候可能會用到union操作。
垂直拆分的方案:將表和表分離,或修改表結構,依照訪問的差異將某些列拆分出去。
1)將用戶信息表放到1個http://www.vxbq.cn/db/server,將產品定單表放到1個http://www.vxbq.cn/db/server。
2)將用戶信息表中主碼(1般是user id)和1些經(jīng)常使用的信息放到1個表,將主碼和不經(jīng)常使用的信息放到另外的表,這致使1般查詢數(shù)據(jù)的時候可能會用到join操作。
在http://www.vxbq.cn/db/的設計中,我們更關注http://www.vxbq.cn/db/的水平擴大的能力。
上一篇 Jscript 隨記