欧美一区二区三区老妇人-欧美做爰猛烈大尺度电-99久久夜色精品国产亚洲a-亚洲福利视频一区二区

php數(shù)據(jù)庫分庫分表策略,mysql數(shù)據(jù)庫分庫分表方案

數(shù)據(jù)庫分庫分表的原則

庫一般后綴是兩位,xx 范圍是00~99;

10多年的遼源網(wǎng)站建設(shè)經(jīng)驗,針對設(shè)計、前端、開發(fā)、售后、文案、推廣等六對一服務(wù),響應(yīng)快,48小時及時工作處理。成都全網(wǎng)營銷的優(yōu)勢是能夠根據(jù)用戶設(shè)備顯示端的尺寸不同,自動調(diào)整遼源建站的顯示方式,使網(wǎng)站能夠適用不同顯示終端,在瀏覽器中調(diào)整網(wǎng)站的寬度,無論在任何一種瀏覽器上瀏覽網(wǎng)站,都能展現(xiàn)優(yōu)雅布局與設(shè)計,從而大程度地提升瀏覽體驗。成都創(chuàng)新互聯(lián)公司從事“遼源網(wǎng)站設(shè)計”,“遼源網(wǎng)站推廣”以來,每個客戶項目都認(rèn)真落實(shí)執(zhí)行。

表一般后綴是一位,x范圍是0-9;

YYYYMMDD,一般指具體的日期。

正常來說,如果采用分庫分表原則,所有范圍內(nèi)的庫表都會存在,一次性都會創(chuàng)建出來。因此不會出現(xiàn)不存在的庫表。

數(shù)據(jù)庫為什么要分庫分表,數(shù)據(jù)庫分庫分表

1 基本思想之什么是分庫分表?

從字面上簡單理解,就是把原本存儲于一個庫的數(shù)據(jù)分塊存儲到多個庫上,把原本存儲于一個表的數(shù)據(jù)分塊存儲到多個表上。

2 基本思想之為什么要分庫分表?

數(shù)

據(jù)庫中的數(shù)據(jù)量不一定是可控的,在未進(jìn)行分庫分表的情況下,隨著時間和業(yè)務(wù)的發(fā)展,庫中的表會越來越多,表中的數(shù)據(jù)量也會越來越大,相應(yīng)地,數(shù)據(jù)操作,增

刪改查的開銷也會越來越大;另外,由于無法進(jìn)行分布式式部署,而一臺服務(wù)器的資源(CPU、磁盤、內(nèi)存、IO等)是有限的,最終數(shù)據(jù)庫所能承載的數(shù)據(jù)量、

數(shù)據(jù)處理能力都將遭遇瓶頸。

3 分庫分表的實(shí)施策略。

分庫分表有垂直切分和水平切分兩種。

3.1

何謂垂直切分,即將表按照功能模塊、關(guān)系密切程度劃分出來,部署到不同的庫上。例如,我們會建立定義數(shù)據(jù)庫workDB、商品數(shù)據(jù)庫payDB、用戶數(shù)據(jù)

庫userDB、日志數(shù)據(jù)庫logDB等,分別用于存儲項目數(shù)據(jù)定義表、商品定義表、用戶數(shù)據(jù)表、日志數(shù)據(jù)表等。

3.2

何謂水平切分,當(dāng)一個表中的數(shù)據(jù)量過大時,我們可以把該表的數(shù)據(jù)按照某種規(guī)則,例如userID散列,進(jìn)行劃分,然后存儲到多個結(jié)構(gòu)相同的表,和不同的庫

上。例如,我們的userDB中的用戶數(shù)據(jù)表中,每一個表的數(shù)據(jù)量都很大,就可以把userDB切分為結(jié)構(gòu)相同的多個userDB:part0DB、

part1DB等,再將userDB上的用戶數(shù)據(jù)表userTable,切分為很多userTable:userTable0、userTable1等,

然后將這些表按照一定的規(guī)則存儲到多個userDB上。

3.3 應(yīng)該使用哪一種方式來實(shí)施數(shù)據(jù)庫分庫分表,這要看數(shù)據(jù)庫中數(shù)據(jù)量的瓶頸所在,并綜合項目的業(yè)務(wù)類型進(jìn)行考慮。

如果數(shù)據(jù)庫是因為表太多而造成海量數(shù)據(jù),并且項目的各項業(yè)務(wù)邏輯劃分清晰、低耦合,那么規(guī)則簡單明了、容易實(shí)施的垂直切分必是首選。

如果數(shù)據(jù)庫中的表并不多,但單表的數(shù)據(jù)量很大、或數(shù)據(jù)熱度很高,這種情況之下就應(yīng)該選擇水平切分,水平切分比垂直切分要復(fù)雜一些,它將原本邏輯上屬于一體

的數(shù)據(jù)進(jìn)行了物理分割,除了在分割時要對分割的粒度做好評估,考慮數(shù)據(jù)平均和負(fù)載平均,后期也將對項目人員及應(yīng)用程序產(chǎn)生額外的數(shù)據(jù)管理負(fù)擔(dān)。

在現(xiàn)實(shí)項目中,往往是這兩種情況兼而有之,這就需要做出權(quán)衡,甚至既需要垂直切分,又需要水平切分。我們的游戲項目便綜合使用了垂直與水平切分,我們首先對數(shù)據(jù)庫進(jìn)行垂直切分,然后,再針對一部分表,通常是用戶數(shù)據(jù)表,進(jìn)行水平切分。

4 分庫分表存在的問題。

4.1 事務(wù)問題。

在執(zhí)行分庫分表之后,由于數(shù)據(jù)存儲到了不同的庫上,數(shù)據(jù)庫事務(wù)管理出現(xiàn)了困難。如果依賴數(shù)據(jù)庫本身的分布式事務(wù)管理功能去執(zhí)行事務(wù),將付出高昂的性能代價;如果由應(yīng)用程序去協(xié)助控制,形成程序邏輯上的事務(wù),又會造成編程方面的負(fù)擔(dān)。

4.2 跨庫跨表的join問題。

在執(zhí)行了分庫分表之后,難以避免會將原本邏輯關(guān)聯(lián)性很強(qiáng)的數(shù)據(jù)劃分到不同的表、不同的庫上,這時,表的關(guān)聯(lián)操作將受到限制,我們無法join位于不同分庫的表,也無法join分表粒度不同的表,結(jié)果原本一次查詢能夠完成的業(yè)務(wù),可能需要多次查詢才能完成。

4.3 額外的數(shù)據(jù)管理負(fù)擔(dān)和數(shù)據(jù)運(yùn)算壓力。

外的數(shù)據(jù)管理負(fù)擔(dān),最顯而易見的就是數(shù)據(jù)的定位問題和數(shù)據(jù)的增刪改查的重復(fù)執(zhí)行問題,這些都可以通過應(yīng)用程序解決,但必然引起額外的邏輯運(yùn)算,例如,對于

一個記錄用戶成績的用戶數(shù)據(jù)表userTable,業(yè)務(wù)要求查出成績最好的100位,在進(jìn)行分表之前,只需一個order

by語句就可以搞定,但是在進(jìn)行分表之后,將需要n個order

by語句,分別查出每一個分表的前100名用戶數(shù)據(jù),然后再對這些數(shù)據(jù)進(jìn)行合并計算,才能得出結(jié)果。

PHP數(shù)據(jù)庫為什么要分表和分庫

數(shù)據(jù)量太大會影響性能,所以進(jìn)行分庫分表以優(yōu)化數(shù)據(jù)庫的性能

分享名稱:php數(shù)據(jù)庫分庫分表策略,mysql數(shù)據(jù)庫分庫分表方案
新聞來源:http://chinadenli.net/article21/dsihgjd.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供微信公眾號定制開發(fā)軟件開發(fā)云服務(wù)器網(wǎng)站排名手機(jī)網(wǎng)站建設(shè)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

h5響應(yīng)式網(wǎng)站建設(shè)