小编dni*_*ess的帖子

递归相关表达式如何加速不同的查询?

我发现这篇关于加快不同查询的帖子:

使用递归CTE的超快速DISTINCT:

USE     tempdb;
GO
DROP    TABLE dbo.Test;
GO
CREATE  TABLE 
        dbo.Test 
        (
        data            INTEGER NOT NULL,
        );
GO
CREATE  CLUSTERED INDEX c ON dbo.Test (data);
GO
-- Lots of duplicated values
INSERT  dbo.Test WITH (TABLOCK)
        (data)
SELECT  TOP (5000000)
        ROW_NUMBER() OVER (ORDER BY (SELECT 0)) / 117329
FROM    master.sys.columns C1,
        master.sys.columns C2,
        master.sys.columns C3;
GO



SET     STATISTICS TIME ON;

-- 1591ms CPU
SELECT  DISTINCT 
        data
FROM    dbo.Test;
Run Code Online (Sandbox Code Playgroud)

- 15ms CPU

WITH    RecursiveCTE
AS      (
        SELECT …
Run Code Online (Sandbox Code Playgroud)

sql t-sql sql-server performance

10
推荐指数
1
解决办法
601
查看次数

Mongodb聚合匹配查询,优先全匹配

我正在尝试对字段执行 mongodb 正则表达式查询。我希望查询在找到一个匹配项时优先考虑完整匹配项,然后再优先考虑部分匹配项。

例如,如果我有一个充满以下条目的数据库。

{
   "username": "patrick"
},
{
   "username": "robert"
},
{
   "username": "patrice"
},
{
   "username": "pat"
},
{
   "username": "patter"
},
{
   "username": "john_patrick"
}
Run Code Online (Sandbox Code Playgroud)

我查询用户名“pat”,我想首先返回直接匹配的结果,然后是部分匹配。因此结果将排序为 ['pat', 'patrick', 'patrice', 'patter', 'john_patrick']。

是否可以单独使用 mongo 查询来完成此操作?如果是这样,有人可以向我指出详细说明如何实现它的资源吗?

这是我尝试用来执行此操作的查询。

db.accounts.aggregate({ $match : 
{ 
    $or : [ 
        { "usernameLowercase" : "pat" },
        { "usernameLowercase" : { $regex : "pat" } }
    ] 
} })
Run Code Online (Sandbox Code Playgroud)

mongodb mongodb-query

2
推荐指数
1
解决办法
1616
查看次数

标签 统计

mongodb ×1

mongodb-query ×1

performance ×1

sql ×1

sql-server ×1

t-sql ×1