簡體   English   中英

mysql數據庫中的空間優化

[英]space optimization in a mysql database

我正在建立一個包含大量對的數據庫,每個對由兩部分組成,一個ID和一個長字符串。 每個ID都是唯一的,但是只有少數幾個長字符串屬性。 為了節省空間,我正在考慮執行以下操作:

我有兩個表,第一個表具有ID和stringID形式的對,第二個表具有stringID longString形式的對。

我想知道這種空間優化是否已經在mysql數據庫中自動完成。 如果是這樣,那么我就不會自己實施它。 如果這種空間優化不是自動完成的,那么還有更好的方法嗎? 關於這種類型的優化,最佳實踐是什么? 謝謝

為了使我的問題更具體,請考慮以下原始表:

employee   WorkAddress (an extremely long string)  
name1      address1  
name2      address1  
name3      address1  
name4      address1  
...  
name1000   address2  
name1001   address2  
name1002   address2  
...
etc

以及新的更節省空間的表:

employee   addressID (much shorter than the long string)
name1      ID1
name2      ID1
...
name1000   ID2
name1001   ID2
name1002   ID2
...
etc

除了第二個表:

addressID  WorkAddress
ID1        address1
ID2        address2
...
etc

注意:如果您認為此問題不適合stackoverflow,請針對此類問題推薦其他stackexchange網站之一。 謝謝

使用這兩個表的解決方案當然是正確的。 不是由於任何空間方面的考慮(如果您在(外部)空間確實很短的環境中,完全成熟的DBMS始終不是正確的工具),而是因為通過規范化來確保數據完整性。

如果該字符串值直接在具有ID的表中並且已更改,則意味着該表中具有該值的每一行都必須更改。 對於其中一種寫作,不僅僅是在兩張表中更改一行。 但更糟糕的是,如果您忘記了在任何情況下數據已損壞的情況下都更新一行或幾行。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM