当前位置: 首页 > 知识库问答 >
问题:

使用Spring boot Postgresql时使用索引

何涵畅
2023-03-14

我知道我可以为单列和复合列创建索引。A我还可以对一些表达式建立索引:

  • 在按某种条件搜索数据的表达式上创建索引,而首先我指定字段首先需要排序,然后按条件输出结果,并基于此表达式构建索引。

(就像使用Couchbase时的索引)

CREATE INDEX `us_users_sorted` ON
`user_profile`(
    `_class`,
    `enabled`,
    `countryCode`,
    `firstName` DESC,
    `lastName` DESC)
WHERE (((`_class` = "com.cb.demo.userProfile.model.UserEntity")
    and (`enabled` = true))
    and (`countryCode` = "US"))

但是我找不到关于这个的信息:

  1. 如果创建记录,我是否需要在同一事务中再次调用以创建此数据的索引(索引如上所述)

我看不出把它分成几个问题有什么意义,事实上,这是一个关于使用Spring和关系数据库处理索引的问题。

当使用复杂的关系数据库索引(我不是指Couchbase)和Spring数据jpa(Spring boot)时,可能有人在web上看到了一个详细的示例,其中包含所有细微差别?

如果可能,请举例回答

共有1个答案

向嘉誉
2023-03-14

索引只需要为所有现有记录创建一次。之后,如果添加/更新/删除了DB记录,它只需要从索引中添加/更新/删除该记录,而不是为所有记录再次创建整个索引。

您可以认为索引就像存在另一个HashMap一样,它允许您通过一些键快速检索记录。但每当在与此索引相关的表中添加/更新/删除记录时,DB将帮助自动维护此哈希图的内容。创建索引就像初始化此HashMap的内容一样,此操作只执行一次。

因此,您不应该通过本机查询创建索引。您应该在启动应用程序之前预先单独创建它。就像您创建数据库表一样。

 类似资料:
  • 主要内容:一、索引概述,1.索引的分类,二、索引的创建,1.创建表时创建索引,2. 在已经存在的表上创建索引,三、删除索引,四、隐藏索引,五、哪些情况下适合创建索引,1.频繁作为 WHERE 查询条件的字段,2. 有唯一性限制的字段,3.经常GROUP BY和ORDER BY的列,4.UPDATE、DELETE的WHERE条件列,,5.DISTINCT字段需要创建索引,6.多表JOIN连接操作时,7. 使用列的类型小的创建索引,,,,,,,,,,,,上一篇我们主要是对索引设计体系的一个讲解,本篇

  • 问题内容: 我使用jQuery制作了一个小型应用程序。我正在从如下所示的JSON文件中为其设置不可用的日期: 我想检查给定的日期是否已经在此列表中,如果有,请删除它。我当前的代码如下所示: 我的问题是在我再次对数组进行编码后,它看起来像这样: 有没有一种方法可以在JSON文件中找到日期匹配并将其删除,而在编码后不会出现键? 问题答案: 使用您的问题: 为什么?因为您要取消设置数组的键而无需重新排序

  • 我正在学习弹性搜索,还有很多东西我没有得到,但有一件事我不知道(或发现所有的)是什么时候使用一个索引,什么时候使用更多的索引。部分原因是我不知道弹性搜索索引到底是什么。 您能解释一下什么是弹性搜索索引吗?什么时候应该只对所有数据使用一个索引?什么时候应该将数据拆分为多个索引? 奖励点/或者,我如何判断何时需要将我的数据拆分为多个索引,然后,我应该如何决定如何将数据拆分为新的索引?

  • 我通过REST使用SpringData和Neo4j,当我添加@Indexed(unique=true)时,我看到了一个异常。这不会在embedded中引发异常,如果删除unique=true,也不会在REST中引发异常。即使数据库为空(没有节点和索引),也会发生这种情况。 有什么想法吗? 以下是异常跟踪: 为了完整起见,下面是测试代码:

  • 我使用的是Elasticsearch 2.3(服务器和java客户端) 原因是:MapPerParsingException[未能解析[id]];Nested:NumberFormatException[对于输入字符串:“2F3CC5D4-9C4C-4A49-9EBD-C8CD86758118”];在org.elasticsearch.index.mapper.fieldmapper.parse(

  • 问题内容: 我正在开发一个事件跟踪系统,该系统使用少数查找表以及主日志记录表。在我撰写的报告中,可以选择一个对象来查看统计信息。界面按重要性递减的顺序显示所有对象(即命中)。 两个表的架构(略有减少,但您能理解以下要点): 我遇到问题的查询如下。我的〜100个条目的表可以正常工作,但是EXPLAIN令我有些担心。 返回值: 那么-有什么错我的架构和/或查询MySQL来依傍和?还是使用ORDER B