ORACLE 索引表上的插入性能

2024-03-28

为什么 Insert 语句在索引表上执行速度较慢?


这实际上是同一类问题:

为什么需要更多时间才能将所有杂货放在厨房的正确位置 而不是在逛完杂货店后把所有东西都留在袋子里?

这是因为在存放杂货时,您希望将它们放在一个漂亮且众所周知的位置,以便以后更容易找到它们。

数据库也必须做同样的事情。

  • 如果你有一个没有索引的表,它可以只在表的末尾添加新数据。
  • 如果有索引,数据库必须执行更多工作。它可能仍然会将记录放在表的末尾,但另外它会更新其索引,以确保如果您之后想查找该记录,它会比没有索引更快地找到它。

这也意味着添加更多索引将进一步减慢插入速度。

应该清楚的是,您只想创建一个索引(如果您以后也将使用它)。如果您只创建索引并且之后不使用它来提高查询的性能,则不需要索引,因为它只会减慢插入速度,而不会改善任何查询。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

ORACLE 索引表上的插入性能 的相关文章

  • 更改 Oracle 11g 或 12c 中的表/列/索引名称大小

    我使用oracle 11g并且需要名称大小大于30个字符 我知道11g中的最大大小是30个字符 我可以更改这个最大尺寸吗 Oracle 12c 中表 列 索引名称的最大大小是多少 数据库对象名称位于11g https docs oracle
  • 谁能用适当的例子向我解释 1NF、2NF、3NF、BCNF 规则?

    这是一个常见的面试问题 我遇到过一次面试 面试官给了我一张桌子 让我告诉他这张桌子是哪种范式 如果它在 NF中 那么将其归一化到下一个NF 我总是对这些正常形式的数据库感到困惑 谁能向我解释这些范式 并举出每个 NF 如何建模到表中的正确示
  • Oracle 10g 内连接的 0RA-00952

    这有效 SELECT PRODUCT INFOS FIELD VALUE PRODUCT INFOS COIL ID SYSTEM PRODUCT INFOS TIME STAMP PRODUCT INFOS FIELD NAME FROM
  • 我应该不断地 open() 和 close() 我的 SQL 数据库还是让它保持打开状态?

    我正在创建一个使用 SQL 数据库来存储数据的应用程序 根据应用程序的设计方式 它将每 3 分钟左右更新一次新数据 具体取决于应用程序运行时的用户操作 在我看到的教程中 他们建议您在更改数据库后关闭数据库 就资源而言 这是 昂贵的 是否最好
  • 搜索拥有超过十亿条记录的数据库的最有效方法?

    我的客户有一个巨大的数据库 仅包含三个字段 主键 无符号数 姓名 多字文本 描述 最多 1000 个 varchar 该数据库拥有超过数十亿条条目 我以前没有处理如此大量数据的经验 他希望我设计一个使用 AJAX 如 Google 的界面来
  • solr索引嵌套文档

    solr支持嵌套文档吗 有没有更好的方法来实现这种文档
  • 选择从查询中检索列名称的列

    我正在寻找一种优雅的方法来从表 A 中选择列 其中列名是从表 B 上的查询中检索的 对表 B 的查询结果 col01 表 A 有几个名为 col01 col02 col03 最终查询应该是为了结果 result from B effecti
  • 实体框架:如何检测数据库的外部更改

    我有一个存储过程可以更改数据库中的大量数据 该存储过程是从同时使用 EF 进行数据操作的应用程序调用的 因此 我单击一个按钮 存储过程在数据库中运行 数据发生更改 并且 EF 向用户显示旧数据 有没有办法强制 DbContext 或 Obj
  • 在 SQL 中查找日期范围重叠的记录

    我有以下表格和数据 CREATE TABLE customer wer id customer NUMBER name VARCHAR2 10 surname VARCHAR2 20 date from DATE date to DATE
  • PL/SQL 中的 BEGIN - END 块原子事务

    这些信息应该很容易找到 但我没有任何运气 当我有一个BEGIN ENDPL SQL 中的块 它是否表现为原子事务 它将尝试在命中时提交END阻止 如果出现问题会回滚更改吗 如果不是 我如何确保 BEGIN END 块内的代码的行为类似于原子
  • 如何使用 ORACLE SQL 从 XML 中单独提取可重复的 json 节点值?

    我有以下 XML 我想提取 json 参数 serviceNumber 的值分别地我尝试使用 EXTRACT 函数 但我得到了连接的结果 但我希望将它们分开
  • Java:如何将哈希图插入 MongoDB?

    我有一个哈希图 我试图将其插入到 MongoDB 版本 3 6 中 我知道 insertMany 方法 它只接受文档列表 我无法创建列表 因为我的数据中有重复项 我想删除它们 这就是我创建哈希图的原因 有什么办法可以将 hashmap 插入
  • 防止 sqlplus 截断列名,无需单独的列格式

    默认情况下 sqlplus 将列名截断为基础数据类型的长度 我们数据库中的许多列名称都以表名称为前缀 因此在截断时看起来相同 我需要在锁定的生产环境中向远程 DBA 指定 select 查询 并拖回假脱机结果以进行诊断 列太多 无法指定各个
  • 在列名中使用保留字

    这是一些简单的代码 但我只是不知道为什么我不能使用这个词作为表的实体 CREATE TABLE IF NOT EXISTS users key INT PRIMARY KEY NOT NULL AUTO INCREMENT username
  • Mysql使用tenant_id进行复合索引

    我们有一个多租户应用程序 该应用程序有一个包含 129 个字段的表 这些字段都可以在 WHERE 和 ORDER BY 子句中使用 我花了 5 天的时间试图找出最适合我们的索引策略 我获得了很多知识 但我仍然有一些问题 1 创建索引时 我应
  • 插入触发器是否需要提交语句

    这是实际场景的简化 在哪里可以看到表 B 上缺失的记录 假设有两个数据库表 A B 表 A 上有一个插入触发器 它对表 B 进行插入 但它没有 COMMIT 如果我们通过 JDBC 连接器打开数据库连接 并对表 A 进行插入 并提交 触发器
  • 返回深度嵌套数组中对象的索引的函数

    我可能需要编写一个函数 仅输出数组内对象的索引 显然 使用 inArray 在下面的示例中返回这个索引就可以了 array one two three inArray one array 0 对于更复杂的数组 如何找到嵌套对象的索引 arr
  • MySQL:查询之间的最佳索引

    我有一个具有以下结构的表 CREATE TABLE geo ip id bigint 20 NOT NULL AUTO INCREMENT start ip int 10 unsigned NOT NULL end ip int 10 un
  • 选择不同的字段和行号只是为了显示 ID 号会产生重复的数据

    我有一个表应用程序 它有 10 列 类别是一列 并且该列有重复值 为了获得不同的值 我有一个查询 SELECT distinct CATEGORY as CategoryName FROM APPLICATION where applica
  • 如何将 SELECT...INTO 与 JOIN 一起使用?

    我有以下示例代码 DECLARE myRow table rowtype myVar table2 column type BEGIN SELECT table col1 table col3 table col4 table2 colum

随机推荐