在我上一篇文章中說過,mysql語句的優化有局限性,mysql語句的優化都是圍繞著索引去優化的,那么如果mysql中的索引也解決不了海量數據查詢慢的狀況,那么有了水平分表與垂直分表的出現(我就是記錄一下自己的理解)
水平分表:

如上圖所示:另外三張表表結構是一樣的 只不過把數據進行分別存放在這三張表中,如果要insert 或者query 那么都需要對id進行取余 然后table名進行拼接,那么就是一張完整的table_name
但是如果我需要對name進行分表呢 或者對email呢?
那么就需要用MD5進行加密 因為MD5加密后是16進制 那么就就可以進行取余,思路同上。
垂直分表:
為什么需要進行垂直分表?
因為如果一張表中 有一個大字段 而且并不是必須要展示的或者不是當前需要用的 那么雖然沒有刻意去查詢 但是在根據id或者其他索引進行查詢的時候就會把大字段一起查出來,會嚴重影響查詢的性能,所以才有的垂直分表
詳細請看下圖:

以上就是水平分表和垂直分表的一種思路,水平有限 不足之處 請指出 謝謝
總結
以上就是這篇文章的全部內容了,希望本文的內容對大家的學習或者工作具有一定的參考學習價值,謝謝大家對腳本之家的支持。如果你想了解更多相關內容請查看下面相關鏈接
您可能感興趣的文章:- MySQL存儲文本和圖片的方法
- Ubuntu上mysql的安裝及使用(通用版)
- nodejs同步調用獲取mysql數據時遇到的大坑
- Mysql如何適當的添加索引介紹
- 阿里云esc服務器Docker部署單節點Mysql的講解
- MySQL存儲引擎MyISAM與InnoDB區別總結整理
- Mysql忘記密碼的幾種解決方案
- Tomcat+Mysql高并發配置優化講解
- 為什么MySQL數據庫索引選擇使用B+樹?
- 將圖片儲存在MySQL數據庫中的幾種方法