Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/azure/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
azure sql上的文本搜索速度较慢_Sql_Azure_Azure Sql Database - Fatal编程技术网

azure sql上的文本搜索速度较慢

azure sql上的文本搜索速度较慢,sql,azure,azure-sql-database,Sql,Azure,Azure Sql Database,我有一个带有描述列的产品表。该表包含约250000种产品。(未来会更多) 当我运行此命令时: select id, title, link from products where description like '%red jeans%' 大约需要4分钟才能得到结果。此表仅包含指向其他网站的链接,因此该表与数据库的其余部分没有任何关系 我们可以做些什么来加快搜索速度?使用其他azure功能?创建一个包含搜索词的新表,并将其与产品关联?最好做什么 (我们要做的是下载产品的rss提要,并将它们添

我有一个带有描述列的产品表。该表包含约250000种产品。(未来会更多)

当我运行此命令时:

select id, title, link from products where description like '%red jeans%'
大约需要4分钟才能得到结果。此表仅包含指向其他网站的链接,因此该表与数据库的其余部分没有任何关系

我们可以做些什么来加快搜索速度?使用其他azure功能?创建一个包含搜索词的新表,并将其与产品关联?最好做什么

(我们要做的是下载产品的rss提要,并将它们添加到数据库的表中。然后让用户搜索产品)

更新:

如果我们将所有产品添加到Redis,那么最好的方法是什么

我有这个:

static readonly ConnectionMultiplexer CacheConnection = ConnectionMultiplexer.Connect("contoso5.redis.cache.windows.net,ssl=true,password=...");
private static void SaveToRedis(List<Product> products)
{
    var Cache = CacheConnection.GetDatabase();
}

private static List<Product> SearchProducts(string words)
{
    var Cache = CacheConnection.GetDatabase();
}
static readonly ConnectionMultiplexer CacheConnection=ConnectionMultiplexer.Connect(“contoso5.redis.cache.windows.net,ssl=true,password=…”;
私有静态void SaveToRedis(列出产品)
{
var Cache=CacheConnection.GetDatabase();
}
私有静态列表搜索产品(字符串)
{
var Cache=CacheConnection.GetDatabase();
}
产品对象包含例如ProductNr、Title、Description、Price。。。
在SearchProducts中,我将在products之后的描述中搜索带有单词的产品。

我猜您可以使用DTU扩展您的数据库,并可以进行比较,如果可能的话,尝试使用redis cache,它比Azure SQL快得多,而且很容易实现。Thanx。我认为扩展数据库的成本太高了。如果我们使用redis,最好的方法是什么?首先将所有产品保存到数据库中。然后将其保存到redis缓存中。我们应该将产品列表保存到缓存中吗?或者最好的方法是什么?很容易使用.NET对象,你可以在web上查看,他们称之为缓存搁置模式,根据文档,这似乎也是合乎逻辑的,每个新的选择都来自数据库,但存储在Azure缓存中,过期时间很长,因此下次从Azure缓存中提取时,因为它的持久性是完美的,谢谢我用一些代码更新了我的问题:)现在最好的方法是什么?:)请参考缓存搁置模式,我想这会更有用