IMAP搜索有多昂贵?


How expensive is IMAP search?

在我们的应用程序中,我们希望经常发出imap_search,例如

$result = imap_search($mbox,'ON "20-May-2008" SUBJECT "ip list" TO "user1@gmail.com" FROM "user2@gmail.com"');

IMAP搜索是如何实现的?是用线性行走吗?如果是,有什么替代方案?

谢谢

这里需要注意的是php imap_search函数正在从imap客户机向邮件服务器发出搜索请求。然后服务器接收此请求,并在服务器端使用特定于特定imap服务器的逻辑对其进行处理。因此,除非您知道imap服务器的内部细节,否则您不知道搜索是如何实现的。

您很可能有一个imap服务器可以有效地实现搜索,而另一个imap服务器实现得很差。因此,对于大型邮箱,搜索可能会运行缓慢,并且会消耗服务器上的大量资源。

我认为避免缓慢搜索的唯一替代方法是编写您自己的邮箱管理器,它与imap服务器同步,并通过您编写的针对您选择的数据存储运行的有效算法在本地进行所有搜索。这可不是件容易的事。