我们目前在我们的网站上有一个搜索功能,允许用户输入一个日期范围。该页面调用查询日期范围并返回适当数据的存储过程。但是,我们的很多表都包含 30m 到 60m 行。如果用户输入一年的日期范围(或某个更大的范围),数据库将逐渐停止。
有没有不涉及对搜索设置时间限制的解决方案?分页已经实现,只显示前 500 行,但数据库仍然受到重创。我们不能对返回的结果数量施加硬性限制,因为用户“可能”需要所有结果。
最佳答案
如果用户输入的日期范围太大,请让您的应用程序以较小的日期范围步长进行搜索。可能使用慢启动方法:第一次搜索仅限于一个月范围内,如果搜索不到 500 行,则搜索前两个月,直到有 500 行。
您将希望从最近的日期开始降序,从最早的日期开始升序。
关于sql - Web 用户搜索过多数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/546771/