有没有办法在连续列上创建索引?例如:
进行如下查询
SELECT *
FROM my_table
WHERE name + lastname = 'hola mundo'`
如何改善应用索引的搜索结果?
PD:我的实际查询不是那么简单,但使用WHERE
的{{1}}部分是减慢一切的部分。通常我的查询在执行类似col1 + col2 = result
的操作时需要1秒,但是当WHERE col1 = 'hola' and col2 = 'mundo'
需要5秒或6秒时。
答案 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'