[英]Combining multiple columns into one using BIT values
在給定的表中,我有多列帶有“是” /“否”值的列...
Table someTable
is_shipped (ENUM) 'n','y' DEFAULT n
is_paid_for (ENUM) 'n','y' DEFAULT n
將上述字段作為BIT(2)列,將兩個字段有效地組合為一個字段,是否是一個更好的主意?
Table someTable
is_shipped_paid BIT(2)
該位的每個值將決定二進制標志的值在哪里?
'0' = Not Shipped
'1' = Shipped
因此,以上列的值'01'表示該商品未發貨且已付款...等...
有什么想法/評論/批評嗎?
因此,您每行要保存兩個或三個字節,請考慮完全擁有一行至少需要26個字節的存儲空間,並且要使一個表可用,您至少需要10%的可用空間,另外還要有20%的空間才能創建一些索引可訪問的行,則節省不大。
尤其是考慮到通過標准SQL查詢和更新這些字段所帶來的復雜性時。
還要考慮一下,這些天來,您以TB的價格購買磁盤,每GB大約需要$ 150,並且在此處保存了幾個字節,似乎並不值得打擾。
在1980年代,您花了大錢購買了K磁盤,這種優化很常見:大多數大型數據中心都在接下來的30年中試圖解決所引起的問題。
如果您確實需要節省磁盤空間,那么不建議您啟用INNO DB壓縮,然后讓數據庫完成工作。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.