如果我在多列上查詢具有唯一索引的數據庫(Oracle),如果將VARCHAR2中的某一列更改爲NUMBER,性能是否會有所不同?
如果有,是重要?VARCHAR2與NUMBER之間的性能差異
(它的VARCHAR2,因爲我需要「0」開頭,但我可以在我的應用程序改變它在表示層)
如果我在多列上查詢具有唯一索引的數據庫(Oracle),如果將VARCHAR2中的某一列更改爲NUMBER,性能是否會有所不同?
如果有,是重要?VARCHAR2與NUMBER之間的性能差異
(它的VARCHAR2,因爲我需要「0」開頭,但我可以在我的應用程序改變它在表示層)
比我知識淵博的人告訴我,在Oracle中,number和varchar2之間的性能差異完全取決於您的數據,因爲它們在內部具有非常相似的表示。 請參閱以下內容:
https://asktom.oracle.com/pls/apex/f?p=100:11:0::::P11_QUESTION_ID:2669498700346402356
還望的 「內部數據格式」 部分:
http://docs.oracle.com/cd/B28359_01/server.111/b28318/datatype.htm#CNCPT012
如果,例如,您的VARCHAR數據實際上是單個字符(如如'Y','N'),那麼你可能會比數字更適合varchars。如果你的代碼少於100個,但是你的字符串相當於8個字符,那麼你可能會比數字更好。
謝謝,雖然晚會到了派對,但與湯姆的鏈接值得... ... :) – gdoron
是的,它應該是更快的使用數量。是否給你增加一個顯着取決於你的數據,索引和查詢。如果你遇到性能問題,這不太可能是魔術解決方案。
您需要定義'顯着'。 NUMBERS會更快。 – Randy
VARCHAR2和NUMBER之間的差異並不那麼顯着(它們的存儲方式相似)。多列唯一索引中的列的ORDER可能很重要。 – ibre5041