作者热门文章
- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
有什么理由不应该为我的每个数据库表创建索引,以作为提高性能的一种方式?似乎一定有一些原因,否则默认情况下所有表都会自动拥有一个。
我使用 MS SQL Server 2016。
最佳答案
表上有一个索引没什么大不了的。您会自动在作为主键或声明为唯一的列(或列组合)上建立索引。
索引有一些开销。索引本身占用磁盘和内存空间(使用时)。因此,如果空间或内存有问题,那么过多的索引可能会成为问题。当插入/更新/删除数据时,需要维护索引以及原始数据。这会减慢更新速度并锁定表(或部分表),这会影响查询处理。
每个表上少量的索引是合理的。这些应该在设计时考虑到典型的查询负载。如果你索引每个表中的每一列,那么数据修改会变慢。如果您的数据是静态的,那么这不是问题。但是,用索引耗尽所有内存可能是个问题。
关于sql - 数据库表中索引的缺点是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41410482/
我是一名优秀的程序员,十分优秀!