我們假設我想將印度手機號碼存儲在MySQL表中,因爲記錄數量非常大,所以我想優化我的存儲空間。 印度手機號碼是10位數字,通常以7,8或9開頭。 例如9XXXXXXXXX
。如何分配N個字節來存儲整數而不是4個字節或8個字節在mysql中?
相關MySQL的領域是:
Type Storage Minimum Value Maximum Value
(Bytes) (Signed/Unsigned) (Signed/Unsigned)
INT 4 -2147483648 2147483647
0 4294967295 <-- somewhat small
BIGINT 8 -9223372036854775808 9223372036854775807
0 18446744073709551615 <-- too large
可以看出,無符號整型是小了一點(約在值的一半),和無符號BIGINT是非常大的存儲一個10位數字。 5個字節足以存儲這些數據。
我的問題是: -
一)是否有分配字節的自定義數字和MYSQL這個數據存儲在任何類型的可用數據類型的好辦法嗎?
b)這是不成熟的優化嗎?試圖這樣做有沒有優勢/劣勢?
c)具有4字節和8字節數字等自然大小的數據類型,忽略數據庫中的5字節和6字節等中間大小有什麼好處?
注意:假設10位數字不是電話號碼,而是10位數字的整數。 VARCHAR不是我正在尋找的。
謝謝。這有幫助。 – DhruvPathak