我有一个搜索网站源代码的网站。但是当数据库获得超过 100 个站点时,mongodb 开始运行缓慢。
这是我的代码:
$arananlar = $db->kaynaklar->find(array("kaynak" => new MongoRegex("/".$kelime."/siU")))->sort(array("_id" => -1))->limit($kactane)->skip($alt);
我有一个搜索网站源代码的网站。但是当数据库获得超过 100 个站点时,mongodb 开始运行缓慢。
这是我的代码:
$arananlar = $db->kaynaklar->find(array("kaynak" => new MongoRegex("/".$kelime."/siU")))->sort(array("_id" => -1))->limit($kactane)->skip($alt);
加快搜索速度的常用方法是添加索引。但是当您使用正则表达式时,索引无济于事。只有当您确切知道要搜索的内容时,索引才会对您有所帮助。但是正则表达式比这复杂得多。他们需要读取每个字符串的全部内容以进行匹配(例外:当正则表达式以字符串开头的锚点开头时^
)。
但是当您不需要正则表达式的全部功能并且只搜索完整的单词时,您可以创建文本索引并使用 text search。
当您想知道特定查询是否使用索引时,可以使用游标的 explain 方法。