MySQL(2):要水平分表 嗎?
前言
昨天困擾了我一陣,要做一個背單詞app,其中單詞表有10w+資料,對于我這個每見識的可是興奮了一會,想要不要水平分表啊這可是“大資料量啊”,
答案當然是不用,但是其他表確實在日后需要水平分表!
什么情況下水平分表
水平分表就是一個表裝的資料太多了,查起來非常慢,即使是弄好所以還是非常慢!那就水平分表吧!
但是注意水平分表不要輕易的分!可以算是重型武器了,別干殺雞用牛刀的事!資料量在1000w以上再考慮水平分表!!!而且一定是索引啥的都不管用了再分表,你問為啥,那你說說分表之后要怎么查詢!?
所以說單詞表才10w,完全不用分表,而且我查詢試了一下很快,所以不用分表,但是有別的表需要分!用戶背單詞記錄表!如果有1000個瘋狂背單詞的用戶,背單詞超過1w,那這個表直接爆了,擠壓別的用戶生成空間(玩笑話),而且就是讀寫壓力也大,這個還沒想好!
總之如果軟體真正上市1w用戶每人1000個單詞,這個表也是要達到千萬級別了,但是可以使用磁區來做,
Mysql分表后怎么查詢效率高? - 老雕蟲的回答 - 知乎
分表(磁區)之后怎么查詢
要問怎么查先說怎么分!這個要按業務來,一般的如果是自增主鍵按主鍵數量分,比如沒1000w一個表,還有按時間分、hash,
就拿按數量分來說,分了之后查詢按動態表名,但是這個表是中間表,前端傳過來的肯定不是這個表記錄的id,所以要想查要么部分表,磁區,mysql有內置函式,很方便,要么在來個映射表,要么就是hash!hash其實主要是解決在哪里的問題,
mysql分表后,如何知道資訊存于哪張分表? - 知乎
總結
前半段很清楚就是分表別隨便用,但是后半段分了之后怎么查這確實是難題,以我目前的認知就是要不還是使用磁區吧!這個好像方便一點,而且這個要提前確定下來,要是以后確定了分表,那現在的sql就要用動態的,要不以后還得改,
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/287914.html
標籤:其他
上一篇:RabbitMQ架構
