7
A
回答
4
1 - 指數,如果要查詢它,它有足夠的選擇性。如果它是一個90%的數值相同的列,那就沒有多少意義。
2 - 這不是問題,但我猜你想知道你是否應該。是的,如果你查詢它並且符合上述標準。
0
總體性能
理論上/設計,你有一個合乎邏輯的模型,其中,比如,用戶名是獨一無二的。
但是,在執行時,您知道使用這種方法比使用作爲索引更高效的替代「userid」列更昂貴(例如,重音,長度等)。說這個,無論如何你都會有一個名字索引,因爲它應該是唯一的。
區別在於您使用此索引的位置:如果它在子表中作爲外鍵列,這不是一個好主意。或者作爲聚集索引。
作爲沒有FK的表的單個索引,那麼它既不在這裏也不在那裏。
最後,我只是使用char/varchar來填充ISO語言或貨幣代碼(DE,EN,GBP,CHF等)。但我的切斷而變化,說實話......
4
- 廣告1)是的,900個字節的限制,巨大的按鍵,大量的索引頁,大量的I/O參與,效率低下的索引操作。結論:不要,除非你的
varchar
最多約50個字符。 - 廣告2)同1
char
與varchar
之間的真正區別是固定的大小與可變大小(即char(100)
)總是在數據頁100個字節,varchar(100)
最多需要100)
相關問題
- 1. SQL索引varchar
- 2. Varchar上的索引?
- 3. varchar不工作的索引列
- 4. 搜索VARCHAR列
- 5. VARCHAR上的MySQL索引(1000)
- 6. DB2 varchar索引連接
- 7. 如何存儲varchar索引?
- 8. 在MySQL中索引VARCHAR
- 9. 的MySQL VARCHAR索引長度
- 10. MySQL-InnoDB索引varchar或索引多個變種
- 11. 數據庫設計:索引Varchar
- 12. 索引性能BigInt有VS的VarChar
- 13. MS SQL Server 2005上的索引varchar
- 14. 需要微調我的mysql查詢有一個索引varchar列
- 15. Postgres不會從文本/ varchar列獲取索引
- 16. 唯一索引,varchar列和(空格)空格的行爲
- 17. MySQL上較小的VARCHAR列更適合索引?
- 18. 數據庫性能:varchar索引與整數次序列
- 19. 慢連接,索引沒有在varchar列上使用
- 20. varchar和int列上的多重索引。但需要全文
- 21. Postgres中的多個varchar列的最佳索引策略
- 22. 有什麼辦法將varchar列索引爲日期時間?
- 23. DB2 C#OdbcDataReadder索引超出varchar列的範圍
- 24. 索引,索引陣列
- 25. 一列索引對2列索引
- 26. 如何在varchar列中搜索數字
- 27. 如何從VARCHAR列搜索與 - 它
- 28. 如何改變一個索引的VARCHAR(100),而不刪除索引的文本?
- 29. 搜索long varchar SQL
- 30. 索引列
如果你可以支持現有的答案,或者有一些補充,請做到這一點。 – Costa 2010-11-07 09:44:54