mysql sharding(碎片)介紹_MySQL教程
推薦:MySql數(shù)據(jù)分區(qū)操作之新增分區(qū)操作如果想在已經(jīng)建好的表上進(jìn)行分區(qū),如果使用alter添加分區(qū)的話,mysql會(huì)提示錯(cuò)誤: 代碼如下: ERROR 1505 HY000 Partition management on a not partitioned table is not possible 正確的方法是新建一個(gè)具有分區(qū)的表,結(jié)構(gòu)一致,然后用insert into 分區(qū)表 select * fro
1、Sharding 的應(yīng)用場(chǎng)景一般都那些?
當(dāng)數(shù)據(jù)庫(kù)中的數(shù)據(jù)量越來越大時(shí),不論是讀還是寫,壓力都會(huì)變得越來越大。試想,如果一張表中的數(shù)據(jù)量達(dá)到了千萬甚至上億級(jí)別的時(shí)候,不管是建索引,優(yōu)化緩存等,都會(huì)面臨巨大的性能壓力。sharding通過某種條件,把同一個(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ī)則,把數(shù)據(jù)分布到不同的DB服務(wù)器上,通過路由規(guī)則訪問特定的數(shù)據(jù)庫(kù),這樣一來,每次訪問面對(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ù)用語,似乎最早見于大型多人在線角色扮演游戲(MMORPG)中。”Sharding” 姑且稱之為”分片”。
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ì)被問到:如在單一數(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ò)展性問題。
分享:mysql的分區(qū)技術(shù)詳細(xì)介紹一、概述 當(dāng) MySQL的總記錄數(shù)超過了100萬后,會(huì)出現(xiàn)性能的大幅度下降嗎?答案是肯定的,但是,性能下降的比率不一而同,要看系統(tǒng)的架構(gòu)、應(yīng)用程序、還有包括索引、服務(wù)器硬件等多種因素而定。當(dāng)有網(wǎng)友問我這個(gè)問題的時(shí)候,我最常見的回答就是:分表,可以根據(jù)id區(qū)間或者
- MySql數(shù)據(jù)分區(qū)操作之新增分區(qū)操作
- mysql的分區(qū)技術(shù)詳細(xì)介紹
- 深入研究mysql中的varchar與limit(容易被忽略的知識(shí))
- Mysql下建立用戶授權(quán)權(quán)限例子
- mysql中alter數(shù)據(jù)表中增加、刪除字段與表名修改例子
- Mysql大小寫敏感的問題
- 給Mysql添加遠(yuǎn)程訪問權(quán)限的方法
- mysql生成隨機(jī)字符串函數(shù)分享
- mysql誤刪root用戶恢復(fù)方法
- MySQL編程中的6個(gè)實(shí)用技巧
- Centos中徹底刪除Mysql(rpm、yum安裝的情況)
- Mysql修改datadir導(dǎo)致無法啟動(dòng)問題解決方法
MySQL教程Rss訂閱編程教程搜索
MySQL教程推薦
猜你也喜歡看這些
- 解讀編寫和優(yōu)化SQL Server的存儲(chǔ)過程
- sqlserver中delete、update中使用表別名和oracle的區(qū)別
- 數(shù)據(jù)類型的表達(dá)式轉(zhuǎn)換為另一種數(shù)據(jù)類型
- 關(guān)于避免在 PL/SQL 中使用嵌套游標(biāo)查詢
- 解讀SQL和Oracle對(duì)數(shù)據(jù)庫(kù)事務(wù)處理的差異
- 詳解SQL Server中數(shù)據(jù)庫(kù)快照的工作原理
- 解讀SQL查詢結(jié)果集對(duì)注入的影響及利用
- 如何使用SQL Server嵌套子查詢
- 收縮數(shù)據(jù)庫(kù)日志文件的方法(僅適用于mssql2005)
- SQL Server 2008網(wǎng)絡(luò)協(xié)議深入理解
- 相關(guān)鏈接:
- 教程說明:
MySQL教程-mysql sharding(碎片)介紹
。