資料庫儲存資料的時候,相同資料分表 分庫的優劣是什麼?

時間 2021-06-06 04:42:58

1樓:jeff

1.為什麼分庫分表

單個表的資料量過大的時候,會影響操作的效能,這是最直接的原因。對於mysql 來說,單個表的達到多大的資料量才會影響效能,跟資料熱度和設計都有關係。如果是流水式的表,也就是歷史資料很少會更新或者查詢,乙個表上億的記錄數影響都不大,如果是innodb 表最好是自增主鍵,插入資料在大表的情況下效能較好。

如果是有很多統計類的需求的,比如join 查詢等,大表會影響比較大。跟你的查詢需求相關了。

2.根據什麼分

題主說的分表了之後還是有大表,明顯就是分布不均勻了,如果你是按照使用者id 這種型別的分就很容易出現不均勻的問題,肯定是有些使用者很活躍有些不活躍的。具體怎麼分又跟你的查詢需求有關了,比如你要按照使用者的維度查該使用者相關的資料最好就是按使用者分了,如果更大的需求是按時間查所有的資料就按時間分。具體情況根據需求來評估。

3.出現大表怎麼辦

分表了還是有大表,如果對效能影響比較大,要重新評估分了,要麼從業務需求角度看怎麼避免大表的查詢。要麼清理掉不用的歷史資料保證表的資料規模。要麼使用中介軟體或者分布式

2樓:

join會變慢,很慢很慢。

你開啟insert表鎖,約定禁止update,使用MyISAM引擎,你基本就可以過的所謂大資料的效率了。

雲資料庫對比傳統資料庫好在哪?

這是哪個雲廠商又來搞運營話題了嗎?凡事有利必有弊,需要根據自己的情況選擇合適自己的。正式一點來說,雲資料庫省掉了機房 機器 安裝 調優 運維等等下幾路的基礎工作,外包給別人了,而且擴容 縮容之類的工作也都可能外包了。可是,這個外包並不總是比自己靠譜。而且還有服務響應速度,資料安全保密,是否跟你有競爭...

在分布式資料庫儲存中,資料分割槽和資料放置有什麼區別?

楊東東 資料分割槽和資料放置是邏輯和物理的關係,邏輯是頂層設計,物理是具體實現,邏輯設計決定物理實現,物理約束反過來影響邏輯設計。舉個例子,給你10個桌球,要求放入3個盒子裡。如何決定哪個球放入哪個盒子?比如 按照編號大小 0 2放入盒子A,3 5放入盒子B,6 9放入盒子C 按照編號特徵 對3取餘...

資料庫的選擇?

破緊逼 推薦學習oracle,因為sqlserver還是做了比較多的封裝,但是oracle會比較複雜,概念也比較多,能學到比較多的資料庫細節,之後學其他資料庫就游刃有餘 postgres django,在搬瓦工買個vps,3.99刀用一年。資料庫遷移沒什麼難度,django提供了 URL routi...