Mysql的水平分表與垂直分表的講解
在我上一篇文章中說(shuō)過(guò),mysql語(yǔ)句的優(yōu)化有局限性,mysql語(yǔ)句的優(yōu)化都是圍繞著索引去優(yōu)化的,那么如果mysql中的索引也解決不了海量數(shù)據(jù)查詢(xún)慢的狀況,那么有了水平分表與垂直分表的出現(xiàn)(我就是記錄一下自己的理解)
水平分表:

如上圖所示:另外三張表表結(jié)構(gòu)是一樣的 只不過(guò)把數(shù)據(jù)進(jìn)行分別存放在這三張表中,如果要insert 或者query 那么都需要對(duì)id進(jìn)行取余 然后table名進(jìn)行拼接,那么就是一張完整的table_name
但是如果我需要對(duì)name進(jìn)行分表呢 或者對(duì)email呢?
那么就需要用MD5進(jìn)行加密 因?yàn)镸D5加密后是16進(jìn)制 那么就就可以進(jìn)行取余,思路同上。
垂直分表:
為什么需要進(jìn)行垂直分表?
因?yàn)槿绻粡埍碇?有一個(gè)大字段 而且并不是必須要展示的或者不是當(dāng)前需要用的 那么雖然沒(méi)有刻意去查詢(xún) 但是在根據(jù)id或者其他索引進(jìn)行查詢(xún)的時(shí)候就會(huì)把大字段一起查出來(lái),會(huì)嚴(yán)重影響查詢(xún)的性能,所以才有的垂直分表
詳細(xì)請(qǐng)看下圖:

以上就是水平分表和垂直分表的一種思路,水平有限 不足之處 請(qǐng)指出 謝謝
總結(jié)
以上就是這篇文章的全部?jī)?nèi)容了,希望本文的內(nèi)容對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,謝謝大家對(duì)腳本之家的支持。如果你想了解更多相關(guān)內(nèi)容請(qǐng)查看下面相關(guān)鏈接
相關(guān)文章
MySQL數(shù)據(jù)表的常見(jiàn)約束小結(jié)
在數(shù)據(jù)庫(kù)設(shè)計(jì)中,約束(Constraints)是用于確保數(shù)據(jù)的完整性、準(zhǔn)確性和一致性的規(guī)則,MySQL?提供了多種約束類(lèi)型,幫助我們規(guī)范數(shù)據(jù)存儲(chǔ),本文給大家介紹了MySQL數(shù)據(jù)表的常見(jiàn)約束,需要的朋友可以參考下2024-12-12
MySQL數(shù)據(jù)庫(kù)Event定時(shí)執(zhí)行任務(wù)詳解
這篇文章主要介紹了MySQL數(shù)據(jù)庫(kù)Event定時(shí)執(zhí)行任務(wù)2017-12-12
mysql 8.0.15 版本安裝教程 連接Navicat.list
這篇文章主要為大家詳細(xì)介紹了mysql 8.0.15 版本安裝教程,連接Navicat.list,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2019-08-08
mysql數(shù)據(jù)庫(kù)查詢(xún)基礎(chǔ)命令詳解
這篇文章主要介紹了mysql數(shù)據(jù)庫(kù)查詢(xún)基礎(chǔ)命令,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2022-11-11
最新MySQL數(shù)據(jù)庫(kù)漏洞情況通報(bào)
本文是對(duì)近期mysql報(bào)出的漏洞情況進(jìn)行了簡(jiǎn)單的說(shuō)明以及漏洞的修復(fù)措施分享,有需要的小伙伴一定要關(guān)注下2016-09-09

