搜索中小型数据库的解决方案


Solution for searching small/medium databases

要搜索的数据库的项目范围从x100到x1000。

我需要一个使用PDO mysql和PHP的搜索解决方案,它可以以尽可能好的性能将多个关键字(全部匹配)与表中的多个"可搜索"列相匹配。

限制查询、限制php循环等的性能差异是什么。?

我想,在一个较小的数据库中,通过一次获取所有查询和使用php循环进行过滤,可以快速进行如此复杂的搜索,但一旦数据库增长,每次获取所有结果一定会导致性能问题吗?这是考虑到这种搜索需要进行多个查询,还是可以在一个查询中完成?最好是全文。

使用PHP循环进行过滤仍然是一种主要的时间浪费。每个查询将获取所有1000行,这些行必须从磁盘上撕下,格式化为默认外观,填充到通信管道中,传输、接收、强制转换为PHP数据类型,然后进行过滤。

数据库是为过滤而设计的,无论是在单个记录上还是在数十亿条记录上。您使用它的目的只是一种复杂且计算成本高昂的存储介质。你可以在数据库上做任何事情来减少传输结果的大小(即使是通过本地套接字连接)都是一件好事(tm)。