如果我使用具有多列唯一索引的数据库(Oracle)进行查询,如果我将其中一个列从VARCHAR2更改为NUMBER,是否会有任何性能差异?如果有,那么它是否显着?
(它是varchar2,因为我需要在开头加上“0”,但我可以在我的应用程序的显示层中更改它。)
(它是varchar2,因为我需要在开头加上“0”,但我可以在我的应用程序的显示层中更改它。)
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个字符,则最好使用数字而不是varchars。是的,使用NUMBER应该会更快。但是它是否能够显著提高性能取决于您的数据、索引和查询。如果您遇到了性能问题,这并不是一个神奇的解决方案。