我的表格包含三列。如果我在 select 语句中选择
NVARCHAR(MAX)
列,我会看到性能很差。是否可以在 NVARCHAR(MAX)
列上创建索引?.
CREATE TABLE TEST
(
id primary key,
product VARCHAR(50),
Title NVARCHAR(max)
)
INSERTING MILLIONS OF RECORDS....
SELECT product, Title
FROM TEST
该表包含数百万条记录。如何为该列创建索引?它真的能提高我的 select 语句的性能吗?或者有没有其他方法可以改善这个问题?
您可以使用“全文搜索索引”来索引 NVARCHAR(MAX)。
顺便说一句,您帖子中的 SQL 不包含
WHERE
或 JOIN
,所以我很确定索引不会提高所有标题的 SELECT
性能。当然,它会降低插入的速度,因为如果添加额外的索引,插入会变慢。
当这个问题针对 SQL Server 2012 发布时,900 字节确实是任何类型的索引键(聚集和非聚集)的限制,这在 SQL Server 的更高版本中已发生变化。
直至 SQL Server 2014
任何类型的索引键最大可为 900 字节。
所以最大 nvarchar 应该是这样的
nvarchar(448)
SQL Server 2016 及以上版本
聚集索引键:900字节 非聚集索引键:1700 字节
所以最大 nvarchar 应该是这样的
nvarchar(848)