要搜索的数据库范围从x100到x1000个项目。
我需要一个带有PDO mysql和PHP的搜索解决方案,它具有最佳性能,可以匹配表中多个“可搜索”列的多个关键字(全部匹配)。
限制查询,限制php循环等的性能差异是什么?
我想在一个较小的数据库中,这样复杂的搜索可以快速获取所有在一个查询中并使用php循环过滤,但是一旦db增长每次取出所有结果必然会导致性能问题?这是考虑到需要对这种搜索进行多次查询,还是可以在一次查询中完成?最好用全文。
答案 0 :(得分:0)
使用PHP循环过滤仍然是一个主要的浪费时间。每个查询都将获取所有1000行,这些行必须从磁盘中删除,格式化为默认外观,填充到通信管道中,传输,接收,强制转换为PHP数据类型,然后进行过滤。
数据库设计用于过滤,无论是在单个记录还是数十亿条记录上。你正在使用它只是一个复杂和计算上昂贵的存储介质。您可以在数据库上执行的任何操作都可以减少传输结果的大小(即使它是通过本地套接字连接)也是一件好事(tm)。