在SQL中加入char(或varchar)值的表上有什麼性能缺陷,而不是說加入整數值?加入整數與加入字符(或變種)
5
A
回答
2
有性能考慮相關的大小連接列。一個整數是4個字節寬 - 所以任何大於4字節的char值都需要更多的磁盤I/O,緩存空間等等。顯然,char(5)不會影響太多,但char(4000)會非常浪費。如果使用unicode類型,請將char大小加倍。
通常這個問題出現在自然vs代理鍵的上下文中。在這個參數中,數據類型的大小不是唯一的因素 - 因爲通常可以避免使用自然(char)鍵進行連接。
當然,任何人都不可能成爲您的應用程序的瓶頸 - 所以設計時不會逍遙法外(至少在這方面)。
1
不,沒有(在Oracle中)。有什麼可以改變的是:
- 如果您的連接條件中的數據類型不同(隱式轉換會導致性能損失)。所以將一個char加入varchar可能會很糟糕。
- 如果一個字段有索引而另一個字段沒有索引。
- 如果一列中的數據比另一列中的數據長得多。
0
沒有,只要數據類型是你加入表之間的同你應該罰款
1
CHAR或VARCHAR將被存儲爲根據您的字符集ASCII或Unicode。一個int將被作爲一些打包的表單存儲。如果以int形式獲取數字,它將小於字符(字符串)形式中的相同數字。作爲數字類型存儲總是比存儲爲字符更高效。
4
加入char或var char通常會產生開銷,而不是加入int。有兩個因素我知道比較時字符的:
- 覈對必須加以
的帳戶 - 炭領域都更多的數據要比較*
*(每個字符表示由8位,一個10 char值因此是80位長,相比於一個int 32位)
*(這是每個字符16個比特如果使用NCHAR或NVARCHAR)
相關問題
- 1. 有什麼區別與加入關鍵字加入或加入=
- 2. JavaScript數組未加入| (或)字符
- 3. 加入表變量與加入視圖
- 4. 用戶輸入字符串或整數
- 5. 加入資源參數字符串與變量 - CFN
- 6. 添加正常字符串或整數
- 7. 加入JavaScript字符串變量響應
- 8. 加入整數數組
- 9. 爪哇整數加法與字符串
- 10. 堅持與輸入驗證在c + +字符串或整數
- 11. 加入與管道字符值在JS
- 12. 加入分割字符串與MySQL表
- 13. 加入字符串字段
- 14. 依次加入數字的字符串
- 15. Python的加入整數
- 16. Xcode的整數++加入4
- 17. sql哪種加入
- 18. Postgres某種加入?
- 19. ActiveRecord的加入:整數列轉換爲字符串
- 20. java程序:從用戶添加整數字符串輸入
- 21. 從字符中加入整數循環退出
- 22. 加入兩個expressionList與「或」或「和」
- 23. 加入UTF-8字符串
- 24. Javascript加入特殊字符?
- 25. 加入字符串列表
- 26. CriteriaQuery加入字符串值
- 27. 加入字符串的Python
- 28. 加入字符串元組
- 29. Hadoop加入字符串鍵
- 30. 將數組值加入字符串
我知道這個問題會提高你的興趣:) – 2009-02-25 22:03:38
他說這是因爲如果我看到字符字段上的連接,我吹我的頂部:) – MatBailie 2009-02-25 22:04:35