0

我有一个如下表结构:

功能列表

ID  - BIGINT - Primary Key  - Clustered Index
VIN - VARCHAR(50)
Text - VARCHAR(50)
Value - VARCHAR(50)

我对此执行的大多数查询都像:

SELECT * FROM FeatureList WHERE VIN = 'ABCD'    --- Will give multiple records

OR 

DELETE FROM FeatureList WHERE VIN = 'ABCD'

我想知道,VIN列是非聚集索引的好候选吗?或者它可能会降低性能?

4

1 回答 1

0

不在VIN 上声明索引绝对大大降低性能。每次涉及 VIN 的插入、删除或更新都会对性能造成很小的影响。读取(尤其是当您进入数百万条记录时)运行速度会快几个数量级。

至于 BIGINT 与 INT,我一般选择 BIGINT。是的,它占用了更多的磁盘空间。是的,它占用了更多的内存。不过,对我来说有利的一面是,我永远不必担心将表(以及将 ID 作为外键的所有其他表)迁移到 BIGINT。到过那里。做到了。额外的空间是值得的。

于 2013-11-14T05:24:14.680 回答