将pgjdbc字符串类型设置为VARCHAR会阻止对TEXT类型的列使用索引吗?

时间:2019-05-22 21:39:50

标签: postgresql jdbc indexing pg-jdbc

pgjdbc连接属性stringtype可以是VARCHARUNDEFINED

  

指定绑定通过setString()设置的PreparedStatement参数时要使用的类型。如果将stringtype设置为VARCHAR(默认值),则此类参数将作为varchar参数发送到服务器。如果将stringtype设置为unspecified,则参数将作为未类型化的值发送到服务器,并且服务器将尝试推断适当的类型。如果您有一个使用setString()设置实际上是其他类型的参数(例如整数)的现有应用程序,并且无法更改该应用程序以使用适当的方法(例如setInt()),这将非常有用。

我有一列类型为TEXT的列,如果我将stringtype设置为VARCHAR,PostgreSQL会使用我的索引来搜索该列吗?

我之所以这样问,是因为查询计划器通常会查找列的确切类型以使用具有相同类型的索引。如果发现其他类型,则跳过索引,而是顺序读取。

0 个答案:

没有答案