小编cod*_*ool的帖子

在 PostgreSQL 中使用索引

我有几个关于在 PostgreSQL 中使用索引的问题。我有一个Friends带有以下索引的表:

   Friends ( user_id1 ,user_id2) 
Run Code Online (Sandbox Code Playgroud)

user_id1并且user_id2user表的外键

  1. 这些是等价的吗?如果不是,那为什么?

    Index(user_id1,user_id2) and Index(user_id2,user_id1)
    
    Run Code Online (Sandbox Code Playgroud)
  2. 如果我创建主键(user_id1,user_id2),它会自动为它创建索引吗?

    如果第一个问题中的索引不相等,那么在上面的主键命令上创建了哪个索引?

postgresql index primary-key

85
推荐指数
5
解决办法
3万
查看次数

将 postgresql 数据移动到不同的驱动器

我使用 AWS 作为我的云环境。我将 PostgreSQL 安装在与根实例卷相同的驱动器上。我已将第二个驱动器连接并安装到我的实例上。现在我想将我所有的 PostgreSQL 数据移动到不同的驱动器。我仍处于开发模式,因此如果此时可以更轻松地传输旧数据,我可以删除旧数据。做这个的最好方式是什么?

PostgreSQL 表空间是我应该看的东西吗?

postgresql tablespaces postgresql-9.1

28
推荐指数
2
解决办法
3万
查看次数

从开始索引还是在出现性能问题时?

我的问题是关于索引的使用。

  1. 我应该从一开始还是在出现性能问题时开始索引?

  2. 我们还可以在执行查询时创建临时索引。这种技术的优缺点是什么?

performance index database-agnostic

15
推荐指数
2
解决办法
542
查看次数

检查唯一列的值是否存在或让 db 在插入时引发唯一错误的优缺点

前几天在写一个查询时,一个想法出现在我的脑海中。

什么是可取的,首先检查是否存在唯一列的值,然后插入或插入并让 db 引发唯一约束错误?它甚至会重要吗?

编辑:正如下面在回答这个问题取决于数据库时所建议的那样,我正在添加标签 postgresql。

postgresql performance error-handling

9
推荐指数
2
解决办法
1365
查看次数

PostgreSQL 中的 Schema 概念

我无法理解 PostgreSQL 中模式的概念和用法。我不知道它如何影响我的数据库设计。我为什么要使用它?

如果我决定现在不考虑它们,以后再担心它们,这会影响我将来吗?

用一个例子解释会很好。

schema postgresql database-design

8
推荐指数
1
解决办法
1155
查看次数

PostgreSQL 的 Unicode 支持及其性能

PostgreSQL 的 Unicode 支持如何?

如果我想保存 Unicode 数据,它在存储和检索时是否必须经过转换过程?如果是,那么这种转换的性能是什么?

如果有这样的转换,在存储简单的ASCII数据时会起作用吗?

postgresql performance collation

6
推荐指数
1
解决办法
5561
查看次数

Group_by 并在表自联接 5-6 次时具有 vs 联接

现在这个问题来找我的情况。架构是

    Table User_Read_Book
       user_id | book_id 
Run Code Online (Sandbox Code Playgroud)

现在我想获得阅读某些书籍的用户。假设给我读过第 1 和第 2 本书的用户。要测试的书数最多可以达到 10。

我写的第一个查询:

Select user_id from User_Read_Book Where book_id In (1,2) Group by user_id Having count(book_id) = 2
Run Code Online (Sandbox Code Playgroud)

第二个查询:

Select  user_id from User_Read_Book as U join User_Read_Book as U1 On
 U.user_id = U1.user_id And U1.book_id = 1 where U.book_id = 2
Run Code Online (Sandbox Code Playgroud)

正如这个答案中所说的/sf/answers/43532401/中它更喜欢在 group by 的情况下加入并让我进行第二次查询。

但我的问题是,当匹配的数字很大时,哪个查询更好。说当你必须找到读过 7 本书的用户时

   Having Count(book_id) = 7
   or
   6 joins to the same table.
Run Code Online (Sandbox Code Playgroud)

我知道在对大型实时数据进行测试时,最好回答这个问题。专家们对此有何看法?

performance join database-design database-agnostic

5
推荐指数
1
解决办法
1642
查看次数

在多对多关系的连接表中添加额外列的利弊

我进行了搜索,但没有找到有关此主题的任何讨论。在连接表上创建许多额外的列有什么优点和缺点吗?因为我们加入了 3 个表,它会影响数据检索的速度吗?

就我而言,它可能会慢一点,但这是必要的,否则我们如何保存有关多对多关系的额外数据。或者还有其他我不知道的方式吗?

performance database-design database-agnostic

1
推荐指数
1
解决办法
1212
查看次数

一个地址表,适用于多种类型的地址

我有一个应用程序,我必须在其中存储多种位置的地址。

例如,我的应用程序需要人员、酒店和活动场所的地址。

我应该为具有相同字段的不同类型的地址创建单独的表吗?或者我应该添加一个额外的字段来说明地址的类型吗?

database-design database-agnostic

1
推荐指数
1
解决办法
1193
查看次数