1
18
指标有点像化疗……太多了,它会杀死你……太少了,你就会死……做错事,你就会死。你要知道多少次,多少次,什么样的方式才能让它不杀你。 你的硬件,平台,环境,负载都起作用。所以回答你的问题。。 是的,有时可能。 |
2
12
根据经验,主键和外键需要被索引。通常,主键只是通过这样定义来索引,但FKs并不在每个数据库中(它们肯定不在SQL Server中,我不能真正代表其他dbs)。您将在连接中使用它们,因此定义它们通常对性能至关重要。 现在,如果有在where子句中经常使用的字段,那么这些字段可以从索引中获益,还可以提供以下内容:
小表很少从索引中获益。如果优化器可以将整个东西保存在内存中,那么这样做通常更快。如果您使用的是数百万个记录表,您将看到索引是关键的。 索引可能非常复杂,如果您对该主题感兴趣,我建议您在性能优化方面找到一本好书,并对其进行深入阅读。 |
3
5
从未使用过的索引会浪费磁盘空间,还会增加插入/更新/删除时间。最好先定义集群索引,然后再定义
当你发现自己在写的时候
我看到的一个常见的索引错误是人们想知道当索引定义为
如果需要通过col2访问数据,则需要一个额外的索引,该索引定义为
对于小型域表,有时进行表扫描比使用索引从表中读取行快。这取决于数据库计算机的速度和网络的速度。 |
4
3
你需要索引。只有使用索引,您才能足够快地访问数据。 尽可能短:
最后:查看执行计划以决定如何优化查询。 只为一个关键查询添加索引。在本例中,您将准确地添加所讨论查询中所需的索引(多列索引)。 |
5
2
基本上,当数据库收集数据时,它的活动索引必须随流而变化。表上可能有很好的索引,但是在超过XXX记录之后,同一个表中的同一个索引是无用的,在这种情况下应该重构它。 要优化和快速的数据库,唯一的方法是一直监视它,并随着记录的到来而重构它。 前段时间我得到的现实生活的例子是受某个时间范围(在A和B之间创建)限制的超快速查询和时间范围不同的超慢速查询。相同的查询,相同的数据库,相同的应用程序,只有一个时间范围的差异。 |
6
2
事实上你不得不使用它们。表中的数据将以某种特定的顺序排列在磁盘上,无论如何,它不能保存为一堆或其他东西。您有机会指定这些数据的确切布局。为什么烧了它? 如果有一个表追加了新记录,并且观察到这些记录中的某些值总是增长(如StackOverflow问题编号),请从中创建一个聚集索引。然后,新的数据将不会插入中间,而是基本上附加到磁盘上的文件中,这是一个相对便宜的操作。 |
7
1
如果一个表被期望成为一个连接的目标,那么最好在该表上有一个聚集索引,以便可以通过数据页顺序执行连接。聚集索引中的列(在某些数据库系统上)将包含在该表的所有其他索引中,因为这些是索引将用于引用表数据的值。为了防止其他索引变得太大,聚集索引中的列应该尽可能窄,因此最好在聚集索引中只使用数字数据类型,而不是字符数据类型。一般来说,更少的列比更多的列要好,但是请注意
如果聚集索引很窄,那么即使在非常大的表上,一些额外的索引也不会对性能产生太大的负面影响。 |
8
0
你好像混淆了两个概念。
添加索引
*
通常地
当然,对于插入/更新,每个索引都会对性能造成更大的影响。。。但是在频谱的另一端,比如说只读数据库(比如每月分发的USPS地址数据库),在操作使用中不会有插入/更新,所以附加索引的唯一负面影响是它们占用的磁盘空间。 这完全不同 指定 查询优化器使用一个索引,实际上覆盖了它自己的操作。。。这可能会降低查询速度。 编辑:编辑以消除过度文字读者误解的机会。 |
itMaxence · 从c库调用objective-c方法 7 年前 |
seladb · Makefile-目录不存在时失败-跨平台 7 年前 |
Ryan · 调整StackLayout元素的高度 7 年前 |
Sergei G · C printf跨平台格式,无警告[重复] 7 年前 |