日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時(shí)間:8:30-17:00
你可能遇到了下面的問題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營(yíng)銷解決方案
數(shù)據(jù)庫(kù)橫向切割:完美解決海量數(shù)據(jù)存儲(chǔ)問題(數(shù)據(jù)庫(kù)橫向切割)

在數(shù)字化時(shí)代,數(shù)據(jù)量的飛速增長(zhǎng)是一件不爭(zhēng)的事實(shí)。對(duì)于企業(yè)來說,如何存儲(chǔ)這些數(shù)據(jù)成為了一項(xiàng)重要的工作。而現(xiàn)有的傳統(tǒng)數(shù)據(jù)庫(kù)往往無法滿足大數(shù)據(jù)存儲(chǔ)的需求。因此,數(shù)據(jù)庫(kù)橫向切割應(yīng)運(yùn)而生。本文將詳細(xì)介紹數(shù)據(jù)庫(kù)橫向切割技術(shù),并探討其應(yīng)用及優(yōu)勢(shì)。

成都創(chuàng)新互聯(lián)專注于施秉網(wǎng)站建設(shè)服務(wù)及定制,我們擁有豐富的企業(yè)做網(wǎng)站經(jīng)驗(yàn)。 熱誠(chéng)為您提供施秉營(yíng)銷型網(wǎng)站建設(shè),施秉網(wǎng)站制作、施秉網(wǎng)頁設(shè)計(jì)、施秉網(wǎng)站官網(wǎng)定制、小程序定制開發(fā)服務(wù),打造施秉網(wǎng)絡(luò)公司原創(chuàng)品牌,更為您提供施秉網(wǎng)站排名全網(wǎng)營(yíng)銷落地服務(wù)。

一、數(shù)據(jù)庫(kù)橫向切割技術(shù)概述

數(shù)據(jù)庫(kù)橫向切割,又稱為分表,是將數(shù)據(jù)庫(kù)中的數(shù)據(jù)表按照某個(gè)維度進(jìn)行水平拆分,以實(shí)現(xiàn)大數(shù)據(jù)存儲(chǔ)和高并發(fā)查詢的技術(shù)。所謂水平拆分,即將原有的數(shù)據(jù)表分成若干個(gè)子表,每個(gè)子表存儲(chǔ)一部分?jǐn)?shù)據(jù),各個(gè)子表之間沒有重疊,每個(gè)子表的結(jié)構(gòu)和字段都是一樣的。而每個(gè)子表存儲(chǔ)的數(shù)據(jù)則依據(jù)表名規(guī)則進(jìn)行分配。例如,可以按照時(shí)間、地域、產(chǎn)品、用戶等維度進(jìn)行分表,從而實(shí)現(xiàn)數(shù)據(jù)的分布存儲(chǔ)。數(shù)據(jù)庫(kù)橫向切割的技術(shù)實(shí)現(xiàn)方式主要有兩種:一是基于應(yīng)用程序?qū)崿F(xiàn)的切割,二是基于數(shù)據(jù)庫(kù)本身實(shí)現(xiàn)的切割。

二、數(shù)據(jù)庫(kù)橫向切割技術(shù)應(yīng)用

數(shù)據(jù)庫(kù)橫向切割技術(shù)已經(jīng)被廣泛應(yīng)用于大型網(wǎng)站、電商、金融、物流等領(lǐng)域。如淘寶,其主要采用基于時(shí)間的橫向切割方式來存儲(chǔ)數(shù)據(jù)。將每天的數(shù)據(jù)存儲(chǔ)在不同的表中,以便進(jìn)行快速查詢和統(tǒng)計(jì)。金融領(lǐng)域也是比較典型的應(yīng)用場(chǎng)景,銀行常常要處理數(shù)據(jù)量極大的業(yè)務(wù)數(shù)據(jù),如賬戶信息、交易記錄等。而這些數(shù)據(jù)又需要按照時(shí)間、交易類型、客戶等維度進(jìn)行查詢和分析。因此,采用數(shù)據(jù)庫(kù)橫向切割技術(shù)來實(shí)現(xiàn)高效存儲(chǔ)和快速查詢成為了不二選擇。

三、數(shù)據(jù)庫(kù)橫向切割技術(shù)的優(yōu)勢(shì)

1.大數(shù)據(jù)存儲(chǔ): 數(shù)據(jù)庫(kù)橫向切割技術(shù)可以將大數(shù)據(jù)拆分為小數(shù)據(jù),從而實(shí)現(xiàn)數(shù)據(jù)的分布存儲(chǔ),降低單機(jī)的存儲(chǔ)壓力。同時(shí),減少單一節(jié)點(diǎn)的數(shù)據(jù)量,提高了數(shù)據(jù)的可用性和可擴(kuò)展性。

2.高并發(fā)查詢: 橫向切割可以將數(shù)據(jù)分散至多個(gè)節(jié)點(diǎn),同時(shí)表結(jié)構(gòu)和表名規(guī)則一樣,各個(gè)節(jié)點(diǎn)之間可以獨(dú)立運(yùn)行,不會(huì)造成壓力互相干擾,并能快速查詢和統(tǒng)計(jì)數(shù)據(jù),保證系統(tǒng)的高性能和高可用性。

3.災(zāi)備容錯(cuò): 采用數(shù)據(jù)庫(kù)橫向切割的方式,即使在某一節(jié)點(diǎn)數(shù)據(jù)出現(xiàn)故障的情況下,其它節(jié)點(diǎn)依舊可以正常運(yùn)行,保證了系統(tǒng)的容錯(cuò)性和可靠性。

四、需要注意的問題

在應(yīng)用數(shù)據(jù)庫(kù)橫向切割技術(shù)時(shí),需要注意以下幾個(gè)問題:

1.表結(jié)構(gòu)不能改變: 切割后的各個(gè)表結(jié)構(gòu)必須相同,否則可能會(huì)影響程序的正常運(yùn)行。

2.數(shù)據(jù)一致性: 數(shù)據(jù)庫(kù)橫向切割后,各個(gè)節(jié)點(diǎn)的數(shù)據(jù)必須保持一致。因此,需要采用一些同步機(jī)制和備份機(jī)制來保證數(shù)據(jù)的一致性和數(shù)據(jù)安全。

3.分頁查詢: 在進(jìn)行分頁查詢時(shí),不同表中的數(shù)據(jù)順序是不確定的,因此需要對(duì)數(shù)據(jù)進(jìn)行預(yù)處理和排序。

五、結(jié)論

數(shù)據(jù)庫(kù)橫向切割技術(shù)是一種有效的解決海量數(shù)據(jù)存儲(chǔ)和高并發(fā)查詢的方法。通過分布式存儲(chǔ)和查詢,降低了單一節(jié)點(diǎn)的壓力,提高了數(shù)據(jù)的可用性和可擴(kuò)展性,同時(shí)保證了系統(tǒng)的高性能和高可用性。不過,在應(yīng)用該技術(shù)時(shí)需要注意數(shù)據(jù)一致性、分頁查詢等問題。 在大數(shù)據(jù)時(shí)代,采用數(shù)據(jù)庫(kù)橫向切割技術(shù),可以讓企業(yè)更好地應(yīng)對(duì)海量數(shù)據(jù)的存儲(chǔ)和處理需求,實(shí)現(xiàn)數(shù)據(jù)的價(jià)值更大化。

相關(guān)問題拓展閱讀:

  • mssql數(shù)據(jù)庫(kù)在磁盤陣列運(yùn)行慢
  • 如何對(duì)SQL Server數(shù)據(jù)庫(kù)進(jìn)行橫向擴(kuò)展
  • mysql數(shù)據(jù)庫(kù)表太大查詢慢優(yōu)化的幾種方法

mssql數(shù)據(jù)庫(kù)在磁盤陣列運(yùn)行慢

數(shù)據(jù)庫(kù)查詢速度慢的原因有很多,常見的有以下幾種:

1、沒有索引或者沒有用到索引(這是查詢慢最常見的問題,是程序設(shè)計(jì)的缺陷)

2、I/O吞吐量小,形成了瓶頸效應(yīng)。

3、沒有創(chuàng)建計(jì)算列導(dǎo)致查詢不優(yōu)化。

4、內(nèi)存不足

5、網(wǎng)絡(luò)速度慢

6、查詢出的數(shù)據(jù)量過大(可以采用多次查詢,其他的方法降低數(shù)據(jù)量)

7、鎖或者死鎖(這也是查詢慢最常見的問題,是程序設(shè)計(jì)的缺陷)

8、sp_lock,sp_who,活動(dòng)的用戶查看,原因是讀寫競(jìng)爭(zhēng)資源。

9、返回了不必要的行和列

10、查詢語句不好,沒有優(yōu)化

●可以通過以下方法來優(yōu)化查詢 :

1、把數(shù)據(jù)、日志、索引放到不同的I/O設(shè)備上,增加讀取速度,以前可以將Tempdb應(yīng)放在RAID0上,SQL2023不在支持。數(shù)據(jù)量(尺寸)越大,提高I/O越重要。

2、縱向、橫向分割表,減少表的尺寸(sp_spaceuse)

3、升級(jí)硬件

4、根據(jù)查詢條件,建立索引,優(yōu)化索引、優(yōu)化訪問方式,限制結(jié)果集的數(shù)據(jù)量。注意填充因子要適當(dāng)(更好是使用默認(rèn)值0)。索引應(yīng)該盡量小,使用字節(jié)數(shù)小的列建索引好(參照索引的創(chuàng)建),不要對(duì)有限的幾個(gè)值的字段建單一索引如性別字段。

5、提高網(wǎng)速。

6、擴(kuò)大服務(wù)器的內(nèi)存,Windows 2023和SQL server 2023能支持4-8G的內(nèi)存。

配置虛擬內(nèi)存:虛擬內(nèi)存大小應(yīng)基于計(jì)算機(jī)上并發(fā)運(yùn)行的服務(wù)進(jìn)行配置。運(yùn)行 Microsoft SQL Server?

2023時(shí),可考慮將虛擬內(nèi)存大小設(shè)置為計(jì)算機(jī)中安裝的物理內(nèi)存的1.5倍。如果另外安裝了全文檢索功能,并打算運(yùn)行Microsoft搜索服務(wù)以便執(zhí)行

全文索引和查詢,可考慮:將虛擬內(nèi)存大小配置為至少是計(jì)算機(jī)中安裝的物理內(nèi)存的3倍。將SQL Server max server

memory服務(wù)器配置選項(xiàng)配置為物理內(nèi)存的1.5倍(虛擬內(nèi)存大小設(shè)置的一半)。

7、增加服務(wù)器CPU個(gè)數(shù);但是必須

明白并行處理串行處理更需要資源例如內(nèi)存。使用并行還是串行程是MsSQL自動(dòng)評(píng)估選擇的。單個(gè)任務(wù)分解成多個(gè)任務(wù),就可以在處理器上運(yùn)行。例如耽擱查詢

的排序、連接、掃描和GROUP BY字句同時(shí)執(zhí)行,SQL

SERVER根據(jù)系統(tǒng)的負(fù)載情況決定更優(yōu)的并行等級(jí),復(fù)雜的需要消耗大量的CPU的查詢最適合并行處理。但是更新操作UPDATE,INSERT,

DELETE還不能并行處理。

8、如果是使用like進(jìn)行查詢的話,簡(jiǎn)單的使用index是不行的,但是全文索引,耗空間。 like ”a%” 使用索引 like

”%a” 不使用索引用 like ”%a%”

查詢時(shí),查詢耗時(shí)和字段值總長(zhǎng)度成正比,所以不能用CHAR類型,而是VARCHAR。對(duì)于字段的值很長(zhǎng)的建全文索引。

9、DB Server 和APPLication Server 分離;OLTP和OLAP分離

10、分布式分區(qū)視圖可用于實(shí)現(xiàn)數(shù)據(jù)庫(kù)服務(wù)器聯(lián)合體。

聯(lián)合體是一組分開管理的服務(wù)器,但它們相互協(xié)作分擔(dān)系統(tǒng)的處理負(fù)荷。這種通過分區(qū)數(shù)據(jù)形成數(shù)據(jù)庫(kù)服務(wù)器聯(lián)合體的機(jī)制能夠擴(kuò)大一組服務(wù)器,以支持大型的多層 Web 站點(diǎn)的處理需要。有關(guān)更多信息,參見設(shè)計(jì)聯(lián)合數(shù)據(jù)庫(kù)服務(wù)器。(參照SQL幫助文件”分區(qū)視圖”)

a、在實(shí)現(xiàn)分區(qū)視圖之前,必須先水平分區(qū)表

b、

在創(chuàng)建成員表后,在每個(gè)成員服務(wù)器上定義一個(gè)分布式分區(qū)視圖,并且每個(gè)視圖具有相同的名稱。這樣,引用分布式分區(qū)視圖名的查詢可以在任何一個(gè)成員服務(wù)器上

運(yùn)行。系統(tǒng)操作如同每個(gè)成員服務(wù)器上都有一個(gè)原始表的復(fù)本一樣,但其實(shí)每個(gè)服務(wù)器上只有一個(gè)成員表和一個(gè)分布式分區(qū)視圖。數(shù)據(jù)的位置對(duì)應(yīng)用程序是透明的。

11、重建索引 DBCC REINDEX ,DBCC INDEXDEFRAG,收縮數(shù)據(jù)和日志 DBCC SHRINKDB,DBCC SHRINKFILE. 設(shè)置自動(dòng)收縮日志.對(duì)于大的數(shù)據(jù)庫(kù)不要設(shè)置數(shù)據(jù)庫(kù)自動(dòng)增長(zhǎng),它會(huì)降低服務(wù)器的性能。

在T-sql的寫法上有很大的講究,下面列出常見的要點(diǎn):首先,DBMS處理查詢計(jì)劃的過程是這樣的:

1、 查詢語句的詞法、語法檢查

2、 將語句提交給DBMS的查詢優(yōu)化器

3、 優(yōu)化器做代數(shù)優(yōu)化和存取路徑的優(yōu)化

4、 由預(yù)編譯模塊生成查詢規(guī)劃

5、 然后在合適的時(shí)間提交給系統(tǒng)處理執(zhí)行

6、 最后將執(zhí)行結(jié)果返回給用戶。

其次,看一下SQL SERVER的數(shù)據(jù)存放的結(jié)構(gòu):一個(gè)頁面的大小為8K(8060)字節(jié),8個(gè)頁面為一個(gè)盤區(qū),按照B樹存放。

12、 Commit和rollback的區(qū)別 Rollback:回滾所有的事物。 Commit:提交當(dāng)前的事物.

沒有必要在動(dòng)態(tài)SQL里寫事物,如果要寫請(qǐng)寫在外面如: begin tran exec(@s) commit trans 或者將動(dòng)態(tài)SQL

寫成函數(shù)或者存儲(chǔ)過程。

13、在查詢Select語句中用Where字句限制返回的行數(shù),避免表掃描,如果返回不必要的數(shù)據(jù),浪費(fèi)了服務(wù)器的I/O資源,加重了網(wǎng)絡(luò)的負(fù)擔(dān)降低性能。如果表很大,在表掃描的期間將表鎖住,禁止其他的聯(lián)接訪問表,后果嚴(yán)重。

14、SQL的注釋申明對(duì)執(zhí)行沒有任何影響

15、盡可能不使用光標(biāo),它占用大量的資源。如果需要row-by-row地執(zhí)行,盡量采用非光標(biāo)技術(shù),如:在客戶端循環(huán),用臨時(shí)表,Table變量,用子查詢,用Case語句等等。

游標(biāo)可以按照它所支持的提取選項(xiàng)進(jìn)行分類:只進(jìn)必須按照從之一行到最后一行的順序提取行。FETCH NEXT 是唯一允許的提取操作,也是默認(rèn)方式??蓾L動(dòng)性可以在游標(biāo)中任何地方隨機(jī)提取任意行。游標(biāo)的技術(shù)在SQL2023下變得功能很強(qiáng)大,他的目的是支持循環(huán)。

有四個(gè)并發(fā)選項(xiàng) READ_ON:不允許通過游標(biāo)定位更新(Update),且在組成結(jié)果集的行中沒有鎖。

OPTIMISTIC WITH

valueS:樂觀并發(fā)控制是事務(wù)控制理論的一個(gè)標(biāo)準(zhǔn)部分。樂觀并發(fā)控制用于這樣的情形,即在打開游標(biāo)及更新行的間隔中,只有很小的機(jī)會(huì)讓第二個(gè)用戶更新

某一行。當(dāng)某個(gè)游標(biāo)以此選項(xiàng)打開時(shí),沒有鎖控制其中的行,這將有助于更大化其處理能力。如果用戶試圖修改某一行,則此行的當(dāng)前值會(huì)與最后一次提取此行時(shí)獲

取的值進(jìn)行比較。如果任何值發(fā)生改變,則服務(wù)器就會(huì)知道其他人已更新了此行,并會(huì)返回一個(gè)錯(cuò)誤。如果值是一樣的,服務(wù)器就執(zhí)行修改。

選擇這個(gè)并發(fā)選項(xiàng)OPTIMISTIC WITH ROW

VERSIONING:此樂觀并發(fā)控制選項(xiàng)基于行版本控制。使用行版本控制,其中的表必須具有某種版本標(biāo)識(shí)符,服務(wù)器可用它來確定該行在讀入游標(biāo)后是否有

所更改。在SQL Server中,這個(gè)性能由timestamp數(shù)據(jù)類型提供,它是一個(gè)二進(jìn)制數(shù)字,表示數(shù)據(jù)庫(kù)中更改的相對(duì)順序。

每個(gè)數(shù)據(jù)庫(kù)都有一個(gè)全局當(dāng)前時(shí)間戳值:@@DS。每次以任何方式更改帶有 timestamp 列的行時(shí),SQL Server

先在時(shí)間戳列中存儲(chǔ)當(dāng)前的 @@DS 值,然后增加 @@DS 的值。如果某 個(gè)表具有 timestamp

列,則時(shí)間戳?xí)挥浀叫屑?jí)。服務(wù)器就可以比較某行的當(dāng)前時(shí)間戳值和上次提取時(shí)所存儲(chǔ)的時(shí)間戳值,從而確定該行是否已更新。服務(wù)器不必比較所有列的值,只需

比較 timestamp 列即可。如果應(yīng)用程序?qū)]有 timestamp

列的表要求基于行版本控制的樂觀并發(fā),則游標(biāo)默認(rèn)為基于數(shù)值的樂觀并發(fā)控制。 SCROLL LOCKS

這個(gè)選項(xiàng)實(shí)現(xiàn)悲觀并發(fā)控制。在悲觀并發(fā)控制中,在把數(shù)據(jù)庫(kù)的行讀入游標(biāo)結(jié)果集時(shí),應(yīng)用程序?qū)⒃噲D鎖定數(shù)據(jù)庫(kù)行。在使用服務(wù)器游標(biāo)時(shí),將行讀入游標(biāo)時(shí)會(huì)在其

上放置一個(gè)更新鎖。如果在事務(wù)內(nèi)打開游標(biāo),則該事務(wù)更新鎖將一直保持到事務(wù)被提交或回滾;當(dāng)提取下一行時(shí),將除去游標(biāo)鎖。如果在事務(wù)外打開游標(biāo),則提取下

一行時(shí),鎖就被丟棄。

因此,每當(dāng)用戶需要完全的悲觀并發(fā)控制時(shí),游標(biāo)都應(yīng)在事務(wù)內(nèi)打開。更新鎖將阻止任何其它任務(wù)獲取更新鎖或排它鎖,從而阻止其它任務(wù)更

新該行。然而,更新鎖并不阻止共享鎖,所以它不會(huì)阻止其它任務(wù)讀取行,除非第二個(gè)任務(wù)也在要求帶更新鎖的讀取。滾動(dòng)鎖根據(jù)在游標(biāo)定義的 SELECT

語句中指定的鎖提示,這些游標(biāo)并發(fā)選項(xiàng)可以生成滾動(dòng)鎖。滾動(dòng)鎖在提取時(shí)在每行上獲取,并保持到下次提取或者游標(biāo)關(guān)閉,以先發(fā)生者為準(zhǔn)。下次提取時(shí),服務(wù)器

為新提取中的行獲取滾動(dòng)鎖,并釋放上次提取中行的滾動(dòng)鎖。滾動(dòng)鎖獨(dú)立于事務(wù)鎖,并可以保持到一個(gè)提交或回滾操作之后。如果提交時(shí)關(guān)閉游標(biāo)的選項(xiàng)為關(guān),則

COMMIT語句并不關(guān)閉任何打開的游標(biāo),而且滾動(dòng)鎖被保留到提交之后,以維護(hù)對(duì)所提取數(shù)據(jù)的隔離。所獲取滾動(dòng)鎖的類型取決于游標(biāo)并發(fā)選項(xiàng)和游標(biāo)

SELECT 語句中的鎖提示。鎖提示 只讀樂觀數(shù)值

*指定 NOLOCK 提示將使指定了該提示的表在游標(biāo)內(nèi)是只讀的。

16、用Profiler來跟蹤查詢,得到查詢所需的時(shí)間,找出SQL的問題所在;用索引優(yōu)化器優(yōu)化索引

17、注意UNion和UNion all 的區(qū)別。UNION all好

18、注意使用DISTINCT,在沒有必要時(shí)不要用,它同UNION一樣會(huì)使查詢變慢。重復(fù)的記錄在查詢里是沒有問題的

19、查詢時(shí)不要返回不需要的行、列

20、 用sp_configure ”query governor cost limit”或者SET

QUERY_GOVERNOR_COST_LIMIT來限制查詢消耗的資源。當(dāng)評(píng)估查詢消耗的資源超出限制時(shí),服務(wù)器自動(dòng)取消查詢,在查詢之前就扼殺掉。

SET LOCKTIME設(shè)置鎖的時(shí)間

21、用select top 100 / 10 Percent 來限制用戶返回的行數(shù)或者SET ROWCOUNT來限制操作的行

22、 在SQL2023以前,一般不要用如下的字句: “IS NULL”, “”, “!=”, “!>”,

“!”等還是不能優(yōu)化,用不到索引。

23、使用Query Analyzer,查看SQL語句的查詢計(jì)劃和評(píng)估分析是否是優(yōu)化的SQL。一般的20%的代碼占據(jù)了80%的資源,我們優(yōu)化的重點(diǎn)是這些慢的地方。

24、如果使用了IN或者OR等時(shí)發(fā)現(xiàn)查詢沒有走索引,使用顯示申明指定索引: SELECT * FROM PersonMember (INDEX = IX_Title) WHERE processid IN (‘男’,‘女’)

25、將需要查詢的結(jié)果預(yù)先計(jì)算好放在表中,查詢的時(shí)候再SELECT。這在SQL7.0以前是最重要的手段。例如醫(yī)院的住院費(fèi)計(jì)算。

26、MIN() 和 MAX()能使用到合適的索引。

27、 數(shù)據(jù)庫(kù)有一個(gè)原則是代碼離數(shù)據(jù)越近越好,所以優(yōu)先選擇Default,依次為Rules,Triggers,

Constraint(約束如外健主健CheckUNIQUE……,數(shù)據(jù)類型的更大長(zhǎng)度等等都是約束),Procedure.這樣不僅維護(hù)工作小,編寫程

序質(zhì)量高,并且執(zhí)行的速度快。

28、如果要插入大的二進(jìn)制值到Image列,使用存儲(chǔ)過程,千萬不要用內(nèi)嵌INsert來插入(不知JAVA

是否)。因?yàn)檫@樣應(yīng)用程序首先將二進(jìn)制值轉(zhuǎn)換成字符串(尺寸是它的兩倍),服務(wù)器受到字符后又將他轉(zhuǎn)換成二進(jìn)制值.存儲(chǔ)過程就沒有這些動(dòng)作:

方法:Create procedure p_insert as insert into table(Fimage) values

(@image), 在前臺(tái)調(diào)用這個(gè)存儲(chǔ)過程傳入二進(jìn)制參數(shù),這樣處理速度明顯改善。

有很多原因啊…系統(tǒng)檢查下..數(shù)據(jù)庫(kù)配置檢查下..網(wǎng)絡(luò)也有肯能是問題.

如何對(duì)SQL Server數(shù)據(jù)庫(kù)進(jìn)行橫向擴(kuò)展

一般人們會(huì)選擇縱向擴(kuò)展(scale up)SQL Server數(shù)據(jù)庫(kù),而非橫向擴(kuò)展(scale out)??v向擴(kuò)展很容易:增加硬件、處理能力、內(nèi)存、磁盤和提高網(wǎng)絡(luò)速度。其原理就是仍然在一臺(tái)服務(wù)器上運(yùn)行數(shù)據(jù)庫(kù),但是增加了服務(wù)器的處理能力和資源。這種方法很昂貴,但是非常簡(jiǎn)單直接。

  采用云技術(shù)

  有時(shí)候,最簡(jiǎn)單的方法就是將問題交由其他人處理。微軟的Windows Azure云服務(wù)包含一個(gè)基于云的SQL Server版本SQL Azure.這在技術(shù)上并非真正意義的橫向擴(kuò)展,因?yàn)樗且环N無限縱向擴(kuò)展方法。所以,轉(zhuǎn)移到Azure并不需要對(duì)您的應(yīng)用程序進(jìn)行大改動(dòng)。實(shí)際上,您只需要將應(yīng)用程序遷移到SQL Azure,然后支付存儲(chǔ)、處理和數(shù)據(jù)傳輸費(fèi)用。這些都是收費(fèi)服務(wù),但是您不需要再擔(dān)心擴(kuò)展問題。

  復(fù)制

  SQL Server原生復(fù)制是一種支持橫向擴(kuò)展的解決方案,與數(shù)據(jù)庫(kù)的創(chuàng)建和使用方式有關(guān)。您只需要在多臺(tái)服務(wù)器上復(fù)制多個(gè)數(shù)據(jù)庫(kù)副本,然后將不同的用戶指向各臺(tái)服務(wù)器。這種方法通常最適合支持地理位置分散的用戶,如亞洲辦公室的用戶使用服務(wù)器1,而北美辦公室的用戶則使用服務(wù)器2.每一臺(tái)服務(wù)器都擁有完整的數(shù)據(jù)副本,并且會(huì)復(fù)制伙伴服務(wù)器的所有修改。

  這種方法不支持自動(dòng)負(fù)載均衡,并且最適合用在用戶固定只使用一部分?jǐn)?shù)據(jù)的情況。換而言之,如果亞洲用戶只需要編輯與他們辦公室相關(guān)的數(shù)據(jù)–例如,主要是亞洲客戶的信息,那么復(fù)制能夠保證其他數(shù)據(jù)庫(kù)副本也包含這些記錄的副本。如果所有用戶都需要編輯完整的數(shù)據(jù)集,那么復(fù)制就變得有一些復(fù)雜,因?yàn)镾QL Server必須在支持用戶的同時(shí),編輯位于不同服務(wù)器的同一個(gè)數(shù)據(jù)。

  SQL Server的合并復(fù)制能夠處理這種沖突,但是您必須進(jìn)行一些自定義合并編程,這意味著您的開發(fā)人員必須開發(fā)一些算法,確定用戶并發(fā)訪問數(shù)據(jù)時(shí)誰獲取編輯權(quán)限。客戶應(yīng)用程序也需要增加編程;使它們不僅向數(shù)據(jù)庫(kù)提交數(shù)據(jù)修改,也要循環(huán)檢查這些修改是否被其他并發(fā)用戶重寫。用戶也需要重新培訓(xùn),因?yàn)榭蛻舳藨?yīng)用程序可能會(huì)提示:”您正在編程的數(shù)據(jù)已經(jīng)發(fā)生變化。您需要重新檢查,確定您的編輯是否仍然有效?!?/p>

  聯(lián)合數(shù)據(jù)庫(kù)

  另一個(gè)重要的橫向擴(kuò)展方法是聯(lián)合。通過這種方法,您可以將數(shù)據(jù)庫(kù)劃分到多臺(tái)服務(wù)器上。垂直分割將同一個(gè)表的不同行保存到不同的服務(wù)器上。同時(shí),地理分區(qū)是最常用的方法:將所有亞洲數(shù)據(jù)記錄保存在一臺(tái)服務(wù)器上,而所有歐洲數(shù)據(jù)則保存在另一臺(tái)服務(wù)器上。這種方法不同于整體復(fù)制:每一個(gè)位置的服務(wù)器都不具備完整的數(shù)據(jù)庫(kù),而只擁有該位置的數(shù)據(jù)。通過實(shí)現(xiàn)一種SQL Server分布式分區(qū)視圖而形成完整的表,用戶就可以瀏覽一個(gè)”聯(lián)合”或組合的數(shù)據(jù)視圖。水平分割則將表的字段保存在不同的服務(wù)器上,因此各臺(tái)服務(wù)器一起協(xié)作構(gòu)成組合的表。

  這些數(shù)據(jù)庫(kù)的創(chuàng)建并不簡(jiǎn)單,其中涉及一種整體操作。您需要掌握關(guān)于數(shù)據(jù)訪問和使用的詳細(xì)信息,才能夠?qū)崿F(xiàn)正確的部署。此外,您還需要一位SQL Server數(shù)據(jù)庫(kù)架構(gòu)師,他應(yīng)該全面理解這些技術(shù),分析您的業(yè)務(wù)情況,并且能夠正確地創(chuàng)建這些組件。

  在一些情況中,實(shí)現(xiàn)這種橫向擴(kuò)展對(duì)客戶端應(yīng)用程序的改動(dòng)很小。對(duì)于本身在設(shè)計(jì)上大量使用視圖和存儲(chǔ)過程進(jìn)行數(shù)據(jù)訪問的應(yīng)用程序,更是如此。因?yàn)檫@些元素只是是在后臺(tái)抽象,在客戶端上不會(huì)發(fā)生變化。但是,這些應(yīng)用程序并不常見;通常,實(shí)現(xiàn)橫向擴(kuò)展都需要修改客戶端程序,使客戶端與后臺(tái)結(jié)構(gòu)分離。

  橫向擴(kuò)展并不簡(jiǎn)單

  毫無疑問,實(shí)現(xiàn)SQL Server橫向擴(kuò)展非常復(fù)雜–這也是Azure等云數(shù)據(jù)庫(kù)系統(tǒng)流行的原因之一。此外,有一些第三方供應(yīng)商能夠幫助實(shí)現(xiàn)橫向擴(kuò)展技術(shù),而不需要完全依賴SQL Server的原生特性。您需要自己下功夫了解這些方法,理解數(shù)據(jù)訪問和使用方法,這樣才能夠選擇更符合您要求的方法。

mysql數(shù)據(jù)庫(kù)表太大查詢慢優(yōu)化的幾種方法

優(yōu)化方案:

主從同步+讀寫分離:

這個(gè)表在有設(shè)備條件的情況下,讀寫分離,這樣能減少很多壓力,而且數(shù)據(jù)穩(wěn)定性也能提高

縱滲前槐向分表:

根據(jù)原則,每個(gè)表最多不要超過5個(gè)索引,縱向拆分字段,將部分字段拆到一個(gè)新表

通常我們按以下原則進(jìn)行垂直拆分:(先區(qū)分這個(gè)表中的冷熱數(shù)據(jù)字段)

把不常用的字段單獨(dú)放在一張表;

把text,blob等大字段拆分出來放在悔坦附表中;

經(jīng)常組合查詢的列放在一張表中;

缺點(diǎn)是:很多邏輯需要重寫,帶來很大的工作量。

利用表分區(qū):

這個(gè)是推薦的一個(gè)解決方案,不會(huì)帶來重寫邏輯等,可以根據(jù)時(shí)間來進(jìn)行表分區(qū),相當(dāng)于在同一個(gè)磁盤上,表的數(shù)據(jù)存在不同的文件夾內(nèi),能夠極大的提高查詢速度。

橫向分表:

1000W條數(shù)據(jù)不少的,會(huì)帶來一些運(yùn)維壓力,備份的時(shí)候,單表備份所需時(shí)間會(huì)很長(zhǎng),所以可叢友以根據(jù)服務(wù)器硬件條件進(jìn)行水平分表,每個(gè)表有多少數(shù)據(jù)為準(zhǔn)。

數(shù)據(jù)庫(kù)橫向切割的介紹就聊到這里吧,感謝你花時(shí)間閱讀本站內(nèi)容,更多關(guān)于數(shù)據(jù)庫(kù)橫向切割,數(shù)據(jù)庫(kù)橫向切割: 完美解決海量數(shù)據(jù)存儲(chǔ)問題,mssql數(shù)據(jù)庫(kù)在磁盤陣列運(yùn)行慢,如何對(duì)SQL Server數(shù)據(jù)庫(kù)進(jìn)行橫向擴(kuò)展,mysql數(shù)據(jù)庫(kù)表太大查詢慢優(yōu)化的幾種方法的信息別忘了在本站進(jìn)行查找喔。

香港服務(wù)器選創(chuàng)新互聯(lián),2H2G首月10元開通。
創(chuàng)新互聯(lián)(www.cdcxhl.com)互聯(lián)網(wǎng)服務(wù)提供商,擁有超過10年的服務(wù)器租用、服務(wù)器托管、云服務(wù)器、虛擬主機(jī)、網(wǎng)站系統(tǒng)開發(fā)經(jīng)驗(yàn)。專業(yè)提供云主機(jī)、虛擬主機(jī)、域名注冊(cè)、VPS主機(jī)、云服務(wù)器、香港云服務(wù)器、免備案服務(wù)器等。


分享題目:數(shù)據(jù)庫(kù)橫向切割:完美解決海量數(shù)據(jù)存儲(chǔ)問題(數(shù)據(jù)庫(kù)橫向切割)
轉(zhuǎn)載來源:http://m.5511xx.com/article/codggpg.html