database - 你如何在 PostgreSQL 中正常定义索引(来自 MySQL)

标签 database postgresql indexing

与其他一切一样,PostgreSQL 似乎具有更强大/更复杂的表索引。也许有人可以帮助我了解索引列的默认方式。

默认情况下,我指的是整数/ bool 列,90% 的时间用于过滤表结果。

在 MySQL 中,我会简单地在与该列同名的列上创建一个索引。我不确定使用的是什么类型(btree?)或者将索引命名为与列相同的含义是什么 - 但它有效。

现在转向 PostgreSQL 我想知道用相同的名称命名索引是否有任何问题(或者没有任何原因)。另外,我想知道哪种类型的索引应该用于 int/bool 值。

最佳答案

在大多数情况下,默认索引类型 (btree) 就可以了。

默认索引名称(如果您未在 CREATE INDEX 语句中指定)基于表和列名称,通常类似于_ _idx。 IIRC 索引名称在模式中必须是唯一的,因此如果您使用与列相同的名称命名索引,那么如果在模式中的多个表中使用相同的列名,您可能会遇到麻烦。

关于database - 你如何在 PostgreSQL 中正常定义索引(来自 MySQL),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5207728/

相关文章:

matlab - 从具有特定索引的向量创建矩阵,无需循环

MySQL + Drupal : Index ignored in INNER JOIN

php - 使用双 SUM 语句的 SQL 查询

sql - 使用 GROUP BY 在计算列上聚合 SUM

mysql - 使用“文本”数据类型在 MySQL 中存储密码哈希?

macos - PostreSQL93 + postgis2 使用 MacPorts

django - docker-compose 有两个容器 : web can not connect to db

python - 将列标题转换为第一行,将行标题转换为 Pandas 数据框中的第一列

database - sqlite:具有自动增量列的多列主键

ruby-on-rails - 将数据库从 SQLite 更改为 Postgresql : "gem install pg" error?