索引在两个连接列SQL上

时间:2018-02-14 17:49:07

标签: sql sql-server

有没有办法在连续列上创建索引?例如:

进行如下查询

SELECT * 
FROM my_table 
WHERE name + lastname = 'hola mundo'`

如何改善应用索引的搜索结果?

PD:我的实际查询不是那么简单,但使用WHERE的{​​{1}}部分是减慢一切的部分。通常我的查询在执行类似col1 + col2 = result的操作时需要1秒,但是当WHERE col1 = 'hola' and col2 = 'mundo'需要5秒或6秒时。

1 个答案:

答案 0 :(得分:3)

+表示您正在使用SQL Server。如果是这样,您可以使用计算列,然后使用索引。但是,我首先会提供类似的内容:

SELECT * 
FROM my_table 
WHERE name = 'hola' and lastname = 'mundo';

这可以利用my_table(lastname, name)上的索引并且应该非常快。

如果它不完全适合(并且名称中的空格有点奇怪),那么:

alter table my_table add fullname as (name + lastname);
create index idx_my_table_fullname on my_table(fullname);

然后将查询短语为:

where fullname = 'hola mundo'