我有一个建议功能,它采用了用户目前所写的内容(比如说“abc”),并提供了基于20k +项目列表的建议。
现在我不想要任何花哨的东西,它只是搜索以“abc”开头的字符串,这就是我想要的。
我的问题是:如果项目列表在PHP数组中硬编写,而不是SQL数据库,那么性能是否存在巨大差异?
谢谢!
答案 0 :(得分:1)
是的,通过索引列在数据库中搜索的复杂性应该是关于log(n),简单地搜索数组将是n(除非您在已排序的数组上使用binsearch)。无论如何,RMDBS会更快地完成它,因为它有强大的优化代码来执行此类任务,而PHP是使用引用的脚本语言(非常慢)。
答案 1 :(得分:0)
我说这取决于。在大多数情况下,数据库执行速度更快,但考虑到最昂贵的操作是磁盘IO,并且在php阵列中硬编码数据会消除从硬盘读取数据的需求。因此,如果您的数据库具有高级别的碎片,那么对阵列进行顺序搜索可能会有更好的性能 但是,当涉及到大量数据时,db将更好地完成工作。