我知道这是一个有点模糊的问题,但哪种算法更有效和/或“更快”?
搜索预先加载的JavaScript数组或使用MySQL查询"SELECT NAME WHERE NAME LIKE '%VARIABLE%'
?使用jquery AJAX调用MySQL来访问PHP文件。
我网站上的一个小背景,它是一个主要面向移动用户的网站,并使用jquery和php的混合来提供内容。在这种情况下,用户将在 ~22,000 唯一名称列表中搜索特定名称。
我还考虑过使用LocalStorage存储表作为缓存,但是这需要额外的(虽然可能更便宜)?验证/更新/加载缓存的步骤。
如果需要更多信息,请提前告知我们并提前致谢。
编辑:
一些额外的信息,用户可以并且可能会搜索多个非唯一值。例如:'Jane'的搜索值可以并且应该返回结果'Jane Smith', 'Janet Smith', 'Jane Doe', 'Janess Whatver', 'jfhfuhd_JANE_dfifhf, 'Blah'
(不知道谁会有这样的名字,但是如果它在数据库中并且他们搜索了Jane它应该返回与其他人一起)
答案 0 :(得分:3)
这只是猜测,但是如果没有测试,我会立即进行MySQL查询。 MySQL已经被其开发人员优化为最佳搜索/排序算法 - 这是它的工作(一看他们的benchmark manual就会让你知道他们关心多少)。编写JavaScript解释器的人没有多少时间专门用于优化他们的搜索/排序算法。
作为一个额外的加分,Javascript选项取决于客户端的计算机速度和浏览器 - 具有执行不良解释的慢速设备将花费更长的时间。但是,MySQL选项依赖于您的服务器,因此完全由您控制。
一些测试
包含10,000个值的JavaScript数组,与设定值进行比较(jsfiddle.net/c6rpK/) - 我得到大约12毫秒
对于使用MySQL的相同测试,我得到2.3ms
答案 1 :(得分:3)
我会选择MySQL。事实上,我甚至不会想要比较两者。
数据库善于处理数据:这是他们的工作。让他们这样做。
在本地存储数据有很多缺点:
最好的当然是完全或部分索引名称。