3
SELECT typarray FROM pg_type WHERE typname = 'citext'

为什么我在 django 调试面板中收到此查询,这是什么意思?每当我导航到新页面时,此查询都会作为第一个运行,然后是所有其他查询,在 python shell 中使用 connection.queries 命令也是如此。我正在使用 django 1.11 和 postgres 9.6。

4

1 回答 1

1

citex是一个 PostgreSQL 扩展,没有固定的类型数组,因此需要执行以下查询以在 Django 端查询pg_type以向 psycopg2 注册扩展

为什么每次加载页面时都会执行此查询是因为它没有在内部缓存,这似乎是为 Django 2.0 排序的

另请注意,对于 1.11 之前的 Django 版本,不会调用以下查询,因为 citext 在 1.11 版左右的 Django 中实现。

于 2017-12-13T02:32:27.237 回答