當一個表的數據量過大,引起存儲不夠或者查詢較慢問題時,應該怎么辦?


縱向切分表

將一個表按照字段切分成兩個或者多個表,將常用的字段切分到一張表中,分布式存儲

橫向切分

有兩種方式,一是按照特定的數據量,將表切分成不同的表(表結構一致)來存儲,新數據插入到新表中,新表的數據量達到約定拆分的數據量時,再建立新表存儲;二是按照某種特定的規則來切分表,然后分布式存儲,如按照不同的模塊分類來切分表。

第二種方式要注意防止主鍵沖突,通常采用snowflake-64bit算法即:

但是也存在隱患,snowflake產生的id是有可能重復的,機器id和序列號可以做到不重復,但是同一台上的時間戳不能保證不重復,如網絡延遲、抖動,這是個無解的問題

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM