![]() |
1
6
索引是一种数据结构,可以提高对数据库表的数据检索操作的速度。大多数DBS在为表定义主键时自动创建索引。SQL Server将主键(复合或其他)的索引创建为“聚集索引”,但它不创建 有 作为主键-可以是其他列。 注:
相关阅读: |
![]() |
2
3
扩展Rexem的反馈: pkeys的聚集索引思想不是任意的。这只是使pkey集群化的默认设置。而clustered意味着这些值将在一个SQL Server 8K页面上物理上彼此靠近,因此假设您通过pkey获取一个值,那么您可能会对它的邻居感兴趣。我不认为对pkeys这样做是个好主意,因为它们通常是唯一但任意的标识符。最好在更有用的数据上进行集群。每个表btw一个聚集索引。 简而言之:如果您可以在聚集索引列上过滤查询(这很有意义),那么一切都会更好。 |
![]() |
3
1
索引查找是指SQL Server可以使用 binary search 以便快速找到行。索引中的行按特定的顺序排序,查询必须在WHERE子句中指定足够的信息,以便SQL Server可以使用排序后的索引。 索引扫描是指SQL Server不能使用索引的排序顺序,但仍然可以使用索引本身。如果表行非常大,但索引相对较小,则这是有意义的。SQL Server将只需要从磁盘读取较小的索引。 作为一个简单的例子,以电话簿表为例:
假设(姓氏)上有索引。那么这个查询将导致 索引查找 :
此查询将导致 索引扫描 :
与现实生活中的电话簿类似的是,你不能查找名字以“no”结尾的人。你必须浏览整个电话簿。 |
![]() |
sqlrobert · SQL-如何查找不包含特定字段值的一组记录 2 年前 |
![]() |
Nick Fleetwood · 调度语法的LINQ查询 3 年前 |
![]() |
Mateen Bagheri · 选择表的计数并选择其自身 3 年前 |
![]() |
Java · 使用交叉应用同时显示两列 3 年前 |