当前位置: 首页 > 面试题库 >

数据库表中索引的缺点是什么?

西门胜涝
2023-03-14
问题内容

有什么理由不应该为我的每个数据库表创建索引,以此来提高性能吗?似乎必须有一些原因,否则所有表在默认情况下都会自动具有一个。

我使用MS SQL Server 2016。


问题答案:

表上的一个索引并不重要。您会自动在作为主键或声明为唯一键的列(或列组合)上建立索引。

索引有一些开销。索引本身占用磁盘和内存的空间(使用时)。因此,如果空间或内存成为问题,那么索引过多可能会成为问题。插入/更新/删除数据时,索引和原始数据都需要维护。这会减慢更新速度并锁定表(或表的部分),这可能会影响查询处理。

每个表上的少量索引是合理的。这些设计时应考虑典型的查询负载。如果您索引每个表中的每一列,那么数据修改将变慢。如果您的数据是静态的,那么这不是问题。但是,用索引耗尽所有内存可能是一个问题。



 类似资料:
  • 本文向大家介绍索引的作用?和它的优点缺点是什么?相关面试题,主要包含被问及索引的作用?和它的优点缺点是什么?时的应答技巧和注意事项,需要的朋友参考一下 答:索引就一种特殊的查询表,数据库的搜索引擎可以利用它加速对数据的检索。它很类似与现实生活中书的目录,不需要查询整本书内容就可以找到想要的数据。索引可以是唯一的,创建索引允许指定单个列或者是多个列。缺点是它减慢了数据录入的速度,同时也增加了数据库的

  • 主要内容:1 索引的优缺点,2 哈希索引,3 全文索引,4 空间数据索引(R-Tree)我们看看其他哈希索引结构的实现,以及索引的优缺点。 1 索引的优缺点 索引可以让服务器快速的定位到表的指定位置。但是这并不是索引的唯一作用,总结下来索引有以下4个优点: 索引大大减少了服务器需要扫描的数据量。 B-Tree索引可以帮助服务器避免排序和临时表,可以用于 ORDER BY 和 GROUP BY 操作,临时表主要是在去重、排序、分组过程中创建,不需要排序和分组,也就不需要创建临时表。 由

  • 问题内容: 似乎在elasticsearch中,您将在集合上定义索引,而在关系数据库中,您将在列上定义索引。如果整个集合都已建立索引,为什么需要对其进行定义? 问题答案: 不幸的是,使用了“索引”一词,这意味着ES和关系数据库中的一些事物(在编辑中非常不同),因为它们针对不同的用例进行了优化。 数据库中的“索引”是辅助数据结构,它使查询和查询变得快速,并且它们通常存储的值与表中显示的值完全相同。您

  • 如果不需要打开shell执行create index,直接在程序源代码里就能指定数据库索引,是不是很酷? 是的,利用bugu-mongo,你只需在程序里加上个@EnsureIndex注解,即可实现该功能。 以一个简单的新闻系统为例: @Entity @EnsureIndex("{type:1}") public class News implements BuguEntity{ @Id

  • 推荐: http://tech.meituan.com/mysql-index.html MySQL索引背后的数据结构及算法原理 聚集索引,非聚集索引,B-Tree,B+Tree,最左前缀原理

  • 问题内容: 偏见的定义是什么: 当max超过2 ^ 32时,mt_rand()返回值的分布在PHP的64位版本上偏向偶数。 如果这是替代四舍五入规则中的那种偏见,我认为这并不重要(因为这种偏见并不明显)。 除了被宣称是比快四倍,只是在前面增加3个字符! 假设可用,那么使用它的缺点是什么? 问题答案: 使用梅森倍捻机算法,这远远优于LCG通常使用的。例如,LCG 的周期仅为 2 32,而mt_ran