0
A
回答
6
你期望有很多重複的字符串嗎?如果不是,那麼正常化將不會產生任何結果。如果是的話,那麼你擁有的重複就越多,索引變得越不有效。 (因爲具有相同索引的所有項目必須檢索)
如果你的數據庫引擎支持它,你可以簡單地設置字符串作爲一個聚集索引,在這種情況下,相似的字符串將被儲存在彼此。
而且如果你已經有兩個列的索引,並比較兩者,您收到的指數的全部好處。
1
這實際上聽起來很容易測試。
你可以設置表兩種方式,產生的100,000個隨機行,運行對陣雙方一些查詢,看看哪個更快。
2
如果您確實需要字符串值,那麼答案是否定的。
比較一個數據庫中的字符串是不是比較一個int,然後查找從INT字符串便宜。
至於字符串的重複,你有更多的重複,那麼你就需要,如果他們非規範化的存儲空間更少。但它仍然會變慢。
如果您正在尋找在存儲性能,然後用字符串,整數PK堅持。
0
如果您使用的是Oracle,您不妨探討使之成爲一個索引組織表COMPRESS 1
指定壓縮到使關鍵 壓縮,從而消除重複 索引組織表中的主鍵列 值的發生。使用 整數指定前綴長度, 這是要壓縮的前綴列數 。
0
指標進行快速搜索可能的。但是請記住,如果數據庫知道所有最重要的字段,則只能使用該索引。例如,如果你有一個索引:
int, string
則數據庫可以使用索引來搜索一個int,或者用於int和字符串的組合。但它不能用它來搜索一個字符串。
如果創建兩個單獨的索引:
index 1: int
index 2: string
則數據庫可以有效地爲int和/或搜索字符串。
您是否對錶格進行規範化並不重要。規範化通常會減慢搜索速度,因爲它會強制查找不同的表。
1
該表已標準化。
將字符串更改爲int不是進一步的規範化。
這可能看起來很挑剔,但「正常化」這個詞已經被過度使用到了它變得毫無意義的地步。
相關問題
- 1. 這個數據庫是否需要標準化?
- 2. 標準化這張表是否更快?
- 3. HTTPs上是否需要OAuth(2-legged)
- 4. 是否需要Java序列化
- 5. Base64是否標準化?
- 6. Shebang(#!)是否標準化?
- 7. 這是否需要動態表單?
- 8. 是否需要在頭文件中定義初始化列表?
- 9. 在這種情況下是否需要執行標準構造函數(Java)?
- 10. 是否有需要啓用異常的C++ 11標準庫接口列表?
- 11. 在這種情況下需要幫助,什麼是標準?
- 12. 這個表達式是否需要優化?
- 13. 這是否需要同步?
- 14. 這裏是否需要htmlspecialchars?
- 15. 我需要標準化數據Scikit
- 16. 表單標籤 - 是否需要在ajax網站上?
- 17. 是否可以格式化標準java列表輸出?
- 18. Java標準化列表
- 19. 您是否需要在Hibernate表的@id列上創建索引
- 20. 在嵌套列表上是否需要最小寬度?
- 21. .mousemove和記憶,我是否需要優化這個與否?
- 22. 是否需要在這裏使用ThreadLocal?
- 23. Threadstatic標誌是否需要?
- 24. APNS是否需要用戶批准?
- 25. ibeacon是否需要校準階段?
- 26. 在Python中實現`__dir__`:是否需要返回一個列表,並且列表是否需要排序?
- 27. 在SQL表中標準化一列
- 28. 在列表中標準化名稱(python)
- 29. C++標準是否需要二進制機器?
- 30. 批量標準是否需要恆定的批量大小?
如何設置爲聚簇索引? – zsharp 2009-04-16 04:54:14