mysql sharding(碎片)介紹
1、Sharding 的應(yīng)用場(chǎng)景一般都那些?
當(dāng)數(shù)據(jù)庫(kù)中的數(shù)據(jù)量越來(lái)越大時(shí),不論是讀還是寫,壓力都會(huì)變得越來(lái)越大。試想,如果一張表中的數(shù)據(jù)量達(dá)到了千萬(wàn)甚至上億級(jí)別的時(shí)候,不管是建索引,優(yōu)化緩存等,都會(huì)面臨巨大的性能壓力。sharding通過(guò)某種條件,把同一個(gè)數(shù)據(jù)庫(kù)中的數(shù)據(jù)分散到多個(gè)數(shù)據(jù)庫(kù)或多臺(tái)機(jī)器上,以減小單臺(tái)機(jī)器壓力。
聯(lián)機(jī)游戲、IM、BSP 都是比較適合 Sharding 的應(yīng)用場(chǎng)景;
2、Sharding與數(shù)據(jù)庫(kù)分區(qū)(Partition)的區(qū)別?
sharding實(shí)現(xiàn)了數(shù)據(jù)的分布式部署,將數(shù)據(jù)通過(guò)一系列的切分規(guī)則,把數(shù)據(jù)分布到不同的DB服務(wù)器上,通過(guò)路由規(guī)則訪問(wèn)特定的數(shù)據(jù)庫(kù),這樣一來(lái),每次訪問(wèn)面對(duì)的就不是單臺(tái)服務(wù)器,而是N臺(tái)服務(wù)器,這樣就降低了單臺(tái)服務(wù)器的壓力。
partition只實(shí)現(xiàn)了DB內(nèi)的分區(qū),不能跨服務(wù)器部署。
“Shard” 這個(gè)詞英文的意思是”碎片”,而作為數(shù)據(jù)庫(kù)相關(guān)的技術(shù)用語(yǔ),似乎最早見于大型多人在線角色扮演游戲(MMORPG)中?!盨harding” 姑且稱之為”分片”。
Sharding 不是一門新技術(shù),而是一個(gè)相對(duì)簡(jiǎn)樸的軟件理念。如您所知,MySQL 5 之后才有了數(shù)據(jù)表分區(qū)功能,那么在此之前,很多 MySQL 的潛在用戶都對(duì) MySQL 的擴(kuò)展性有所顧慮,而是否具備分區(qū)功能就成了衡量一個(gè)數(shù)據(jù)庫(kù)可擴(kuò)展性與否的一個(gè)關(guān)鍵指標(biāo)(當(dāng)然不是唯一指標(biāo))。數(shù)據(jù)庫(kù)擴(kuò)展性是一個(gè)永恒的話題,MySQL 的推廣者經(jīng)常會(huì)被問(wèn)到:如在單一數(shù)據(jù)庫(kù)上處理應(yīng)用數(shù)據(jù)捉襟見肘而需要進(jìn)行分區(qū)化之類的處理,是如何辦到的呢? 答案是:Sharding。
Sharding 不是一個(gè)某個(gè)特定數(shù)據(jù)庫(kù)軟件附屬的功能,而是在具體技術(shù)細(xì)節(jié)之上的抽象處理,是水平擴(kuò)展(Scale Out,亦或橫向擴(kuò)展、向外擴(kuò)展)的解決方案,其主要目的是為突破單節(jié)點(diǎn)數(shù)據(jù)庫(kù)服務(wù)器的 I/O 能力限制,解決數(shù)據(jù)庫(kù)擴(kuò)展性問(wèn)題。
相關(guān)文章
MySQL中 and or 查詢的優(yōu)先級(jí)分析
這個(gè)可能是容易被忽略的問(wèn)題,首選我們要清楚,MySQL中,AND的執(zhí)行優(yōu)先級(jí)高于OR。也就是說(shuō),在沒(méi)有小括號(hào)()的限制下,總是優(yōu)先執(zhí)行AND語(yǔ)句,再執(zhí)行OR語(yǔ)句2021-03-03
SQL?日期處理視圖創(chuàng)建(常見數(shù)據(jù)類型查詢防范?SQL注入)
這篇文章主要為大家介紹了SQL日期處理和視圖創(chuàng)建:常見數(shù)據(jù)類型、示例查詢和防范?SQL?注入方法示例,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-12-12
mysql 讓一個(gè)存儲(chǔ)過(guò)程定時(shí)作業(yè)的代碼
以下例子主要是實(shí)現(xiàn)簡(jiǎn)單的mysq 定時(shí)作業(yè),需要的朋友可以參考下。2011-05-05
MySQL數(shù)據(jù)庫(kù)誤刪恢復(fù)的超詳細(xì)教程
MySQL誤刪數(shù)據(jù)庫(kù),造成了數(shù)據(jù)的丟失,這是非常尷尬的,但是有許多方案可以用來(lái)嘗試恢復(fù)丟失的數(shù)據(jù)庫(kù),這篇文章主要給大家介紹了關(guān)于MySQL數(shù)據(jù)庫(kù)誤刪恢復(fù)的超詳細(xì)教程,需要的朋友可以參考下2024-03-03
MySQL學(xué)習(xí)筆記之?dāng)?shù)據(jù)定義表約束,分頁(yè)方法總結(jié)
這篇文章主要介紹了MySQL學(xué)習(xí)筆記之?dāng)?shù)據(jù)定義表約束,分頁(yè)方法,結(jié)合實(shí)例形式總結(jié)分析了數(shù)據(jù)定義、主鍵、外鍵、自增長(zhǎng)、約束等概念與用法,并給出了關(guān)于分頁(yè)的實(shí)例與相關(guān)操作技巧,需要的朋友可以參考下2016-09-09
使用mysqldump導(dǎo)入數(shù)據(jù)和mysqldump增量備份(mysqldump使用方法)
mysqldump常用于MySQL數(shù)據(jù)庫(kù)邏輯備份,下面看實(shí)例吧2013-12-12
MySQL基于SSL安全連接的主從復(fù)制(過(guò)程詳解)
SSL(Secure Sockets Layer 安全套接層),及其繼任者傳輸層安全(Transport Layer Security,TLS)是為網(wǎng)絡(luò)通信提供安全及數(shù)據(jù)完整性的一種安全協(xié)議,這篇文章主要介紹了MySQL基于SSL安全連接的主從復(fù)制,需要的朋友可以參考下2023-04-04
mysql alter table命令修改表結(jié)構(gòu)實(shí)例
這篇文章主要介紹了mysql alter table命令修改表結(jié)構(gòu)實(shí)例的相關(guān)資料,需要的朋友可以參考下2016-10-10

