mysql 分庫分表淺析

分表是分散數據庫壓力的好方法。
分表,最直白的意思,就是將一個表結構分為多個表,然后,可以再同一個庫里,也可以放到不同的庫。
當然,首先要知道什么情況下,才需要分表。個人覺得單表記錄條數達到百萬到千萬級別時就要使用分表了。
1,分表的分類
1>縱向分表
將本來可以在同一個表的內容,人為劃分為多個表。(所謂的本來,是指按照關系型數據庫的第三范式要求,是應該在同一個表的。)
分表理由:根據數據的活躍度進行分離,(因為不同活躍的數據,處理方式是不同的)
案例:
對于一個博客系統,文章標題,作者,分類,創建時間等,是變化頻率慢,查詢次數多,而且最好有很好的實時性的數據,我們把它叫做冷數據。而博客的瀏覽量,回復數等,類似的統計信息,或者別的變化頻率比較高的數據,我們把它叫做活躍數據。所以,在進行數據庫結構設計的時候,就應該考慮分表,首先是縱向分表的處理。
這樣縱向分表后:
首先存儲引擎的使用不同,冷數據使用MyIsam 可以有更好的查詢數據。活躍數據,可以使用Innodb ,可以有更好的更新速度。
其次,對冷數據進行更多的從庫配置,因為更多的操作時查詢,這樣來加快查詢速度。對熱數據,可以相對有更多的主庫的橫向分表處理。
其實,對于一些特殊的活躍數據,也可以考慮使用memcache ,redis
? 之類的緩存,等累計到一定量再去更新數據庫。或者mongodb 一類的nosql 數據庫,這里只是舉例,就先不說這個。
2>橫向分表
字面意思,就可以看出來,是把大的表結構,橫向切割為同樣結構的不同表,如,用戶信息表,user_1,user_2 等。表結構是完全一樣,但是,根據某些特定的規則來劃分的表,如根據用戶ID來取模劃分。
分表理由:根據數據量的規模來劃分,保證單表的容量不會太大,從而來保證單表的查詢等處理能力。
案例:同上面的例子,博客系統。當博客的量達到很大時候,就應該采取橫向分割來降低每個單表的壓力,來提升性能。例如博客的冷數據表,假如分為100個表,當同時有100萬個用戶在瀏覽時,如果是單表的話,會進行100萬次請求,而現在分表后,就可能是每個表進行1萬個數據的請求(因為,不可能絕對的平均,只是假設),這樣壓力就降低了很多很多。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/36962.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/36962.shtml
英文地址,請注明出處:http://en.pswp.cn/news/36962.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

2023河南萌新聯賽第(五)場:鄭州輕工業大學C-數位dp

鏈接:登錄—專業IT筆試面試備考平臺_牛客網 給定一個正整數 n,你可以對 n 進行任意次(包括零次)如下操作: 選擇 n 上的某一數位,將其刪去,剩下的左右部分合并。例如 123,你可以選擇…

年至年的選擇仿elementui的樣式

組件&#xff1a;<!--* Author: liuyu liuyuxizhengtech.com* Date: 2023-02-01 16:57:27* LastEditors: wangping wangpingxizhengtech.com* LastEditTime: 2023-06-30 17:25:14* Description: 時間選擇年 - 年 --> <template><div class"yearPicker"…

Smart HTML Elements 16.1 Crack

Smart HTML Elements 是一個現代 Vanilla JS 和 ES6 庫以及下一代前端框架。企業級 Web 組件包括輔助功能&#xff08;WAI-ARIA、第 508 節/WCAG 合規性&#xff09;、本地化、從右到左鍵盤導航和主題。與 Angular、ReactJS、Vue.js、Bootstrap、Meteor 和任何其他框架集成。 智…

九、多態(2)

本章概要 構造器和多態 構造器調用順序繼承和清理構造器內部多態方法的行為 協變返回類型使用繼承設計 替代 vs 擴展向下轉型與運行時類型信息 構造器和多態 通常&#xff0c;構造器不同于其他類型的方法。在涉及多態時也是如此。盡管構造器不具有多態性&#xff08;事實上…

【JavaScript】new 的原理以及實現

網道 - new 命令的原理 使用new命令時&#xff0c;它后面的函數依次執行下面的步驟。 創建一個空對象&#xff0c;作為將要返回的對象實例。將這個空對象的原型&#xff0c;指向構造函數的prototype屬性。將這個空對象賦值給函數內部的this關鍵字。如果構造函數返回了一個對象…

版本動態 | SolidUI 0.2.0 版本發布

SolidUI 一句話生成任何圖形 背景 隨著文本生成圖像的語言模型興起&#xff0c;SolidUI想幫人們快速構建可視化工具&#xff0c;可視化內容包括2D,3D,3D場景&#xff0c;從而快速構三維數據演示場景。SolidUI 是一個創新的項目&#xff0c;旨在將自然語言處理&#xff08;NLP&…

[SpringCloud] 組件性能優化技巧

Feign 配置優化hystrix配置 優化ribbon 優化Servlet 容器 優化Zuul配置 優化 文章目錄 1.Servlet 容器 優化2.Feign 配置優化3.Zuul配置 優化4.hystrix配置 優化5.ribbon 優化 1.Servlet 容器 優化 默認情況下, Spring Boot 使用 Tomcat 來作為內嵌的 Servlet 容器, 可以將 We…

在Visual Studio上,使用OpenCV實現人臉識別

1. 環境與說明 本文介紹了如何在Visual Studio上&#xff0c;使用OpenCV來實現人臉識別的功能 環境說明 : 操作系統 : windows 10 64位Visual Studio版本 : Visual Studio Community 2022 (社區版)OpenCV版本 : OpenCV-4.8.0 (2023年7月最新版) 實現效果如圖所示&#xff0…

Linux命令200例:adduser用于創建新用戶

&#x1f3c6;作者簡介&#xff0c;黑夜開發者&#xff0c;全棧領域新星創作者?。CSDN專家博主&#xff0c;阿里云社區專家博主&#xff0c;2023年6月csdn上海賽道top4。 &#x1f3c6;數年電商行業從業經驗&#xff0c;歷任核心研發工程師&#xff0c;項目技術負責人。 &…

代理模式【Proxy Pattern】

什么是代理模式呢&#xff1f;我很忙&#xff0c;忙的沒空理你&#xff0c;那你要找我呢就先找我的代理人吧&#xff0c;那代理人總要知道 被代理人能做哪些事情不能做哪些事情吧&#xff0c;那就是兩個人具備同一個接口&#xff0c;代理人雖然不能干活&#xff0c;但是被 代…

解決 Mac 上使用 Electron Updater 更新 App 不成功的問題!!!

文章目錄 1. 現象2. 分析并如何解決3. 后續 1. 現象 在Mac電腦上&#xff0c;使用Electron Updater對程序進行更新&#xff0c;但是一直不成功&#xff0c;也不報錯。具體表現是這樣的&#xff1a;當前我的程序版本是3.11版本&#xff0c;點擊更新之后&#xff0c;也下載了&am…

11 迭代器|生成器|協程

文章目錄 迭代器可迭代對象可迭代對象的本質iter()函數與 next()函數迭代器 Iterator樣例 for...in...循環的本質使用的場景--斐波那契數列list和tuple也可以接收可迭代對象 生成器簡介創建生成器方法一方法二總結 使用 send 喚醒 協程協程和線程差異簡單實現協程greenletgeven…

微PE工具箱實現U盤重裝Windows系統

教程來源 U盤重裝Windows系統&#xff08;微PE工具箱&#xff09;_嗶哩嗶哩_bilibili 加上自己的一丟丟理解&#xff0c;如果你覺得長視頻看了犯困&#xff0c;不如看看我的理解文章說不定能夠幫助到你 準備工作 到這個網站使用迅雷下載免費無插件的官方鏡像MSDN, 我告訴你…

JVM筆記 —— 出現內存溢出錯誤時時如何排查

一、出現內存溢出的幾種情況 內存溢出錯誤分為StackOverflowError和OutOfMemoryError&#xff0c;前者是棧中出現溢出&#xff0c;后者一般是堆或方法區出現溢出&#xff0c;簡稱OOM 1. 棧溢出 StackOverflowError 棧溢出一般都是因為沒有正確的結束遞歸導致的&#xff0c;無…

Linux中安裝MySQL8版本,安裝MySQL步驟,MySQL8離線安裝

Linux中安裝MySQL8版本的步驟如下&#xff1a; 1.檢查下libaio.so.1的位置 [roottdx ]# whereis libaio.so.1 libaio.so: /usr/lib64/libaio.so.1 如果沒有找到該文件 (1).在線安裝 [roottdx ]# yum install -y libaio (2).離線安裝&#xff1a; 上傳之后執行命令安裝&#…

pymysql 庫 - python 操作 mysql

環境&#xff1a; Win10 x64 Python 3.7 PyMySQL 1.0.2 MySQL 8.0.27 1 安裝 pip install pymysql 2 地址 https://pypi.org/project/pymysql/ 3.1 數據庫版本查詢 (search_version.py) import pymysql# 打開數據庫連接 try:db pymysql.connect(hostlocalhost, userr…

python安裝第三方包時報錯:...\lib\site-packages\pip\_vendor\urllib3\response.py...

安裝redis第三方包&#xff1a; pip install redis報錯現象&#xff1a; 解決方法&#xff1a;使用以下命令可成功安裝 pip install redis -i http://pypi.douban.com/simple --trusted-host pypi.douban.com

關于網絡入侵檢測領域使用Spark/Flink等計算框架做分布式

關于網絡入侵檢測領域使用Spark/Flink等計算框架做分布式 0、引言1 基于LightGBM的網絡入侵檢測研究2 基于互信息法的智能化運維系統入侵檢測Spark實現3 基于Spark的車聯網分布式組合深度學習入侵檢測方法4 基于Flink的分布式在線集成學習框架研究5 基于Flink的分布式并行邏輯回…

mongodb基礎

mongodb語法 參考文檔&#xff1a;https://docs.mongodb.com/manual/reference/ BSON Types BSON Type有2種標識符&#xff0c;整形和字符串 類型數值字符串說明Double1“double”String2“string”Object3“object”Array4“array”Binary data5“binData”Undefined6“un…

8.9黃金最新行情走勢分析及短線交易策略

近期有哪些消息面影響黃金走勢&#xff1f;黃金多空該如何研判&#xff1f; ?黃金消息面解析&#xff1a;周三&#xff08;8月9日&#xff09;現貨黃金維持震蕩&#xff0c;目前交投于1930美元附近&#xff0c;隔日現貨黃金盤中震蕩下行&#xff0c;失守1930關口并在美盤時段…