我正在忙着建立一个婚介(约会)网站。表格和查询以我不满意的方式设置。它仍在建设中,所以我很乐意改变任何东西,以使其正常工作。在我决定用大量记录填充数据库以查看其执行情况之前,它非常快。
请注意,这是一个很长的帖子,有很多(我希望是正确的......)信息。
我一直在谷歌搜索'并且在书中读书好几天但是A)查询执行速度非常慢(难怪,我觉得这不好)和B)我没有进一步了解它。
所以我希望有人可以帮我告诉我我做错了什么,我应该做什么以及如何加快查询速度。生成结果集需要10-20秒,这不好,任何人都知道......
信息:
我有一个名为'profiles'的表,里面有大约500,000条记录。 (此时,未来可能更多)
个人资料表:
示例内容:
问题的每个答案都会作为一行插入到个人资料表中。有些问题是多项选择,因此成员选择的每个答案都将作为新行插入到配置文件表中,并且有些问题只能有一个答案,因此在配置文件表中只有一行。
此外,还有表'状态',其中我记录了阻止或互相关联的成员:
示例内容:
一旦成员填写了他/她的标准,php会动态构建需要从配置文件表中获取记录的查询:
如果所有90个问题都在上面的sql语句中,你可以想象这个选择查询会有多大。
解释告诉我这个:
基本上我想查询配置文件表,获取符合给定条件的成员。标准是:
搜索输入的成员作为他/她的成员将检索匹配成员的标准
当前成员(搜索者)不应该在结果中
状态表中存在状态为“block”的成员不应出现在结果中
我知道(现在)'where in'子句不是很快,索引可能是错误的,也许我的整个表格布局需要不同,但我希望有人可以指出我或帮助我朝着正确的方向前进。经过一天的尝试和谷歌搜索'我在我的智慧结束。
如果您需要更多信息,请大声喊叫!希望有人可以帮助我。