【发布时间】:2011-04-20 10:35:51
【问题描述】:
对于我正在创建的用户内容网站,它有很多子部分:电影、工作、人物、照片、邮件等。它就像一个雅虎门户,但信息搜索非常详细,就像我一样与任何网站不同,每个主题都尽可能深入。我有正在使用 codeignitor php 和 mysql 开发的网站。正如我们在 google、yahoo 上看到的那样,搜索可以在所有子站点和每个子部分中进行全局搜索。我的系统上有 22 个可能的用户内容对象,每个对象都有大约 12-15 个搜索字段,我称之为对象元数据 + 我存储的历史数据(如用户内容版本控制)也我想包含在搜索中。
现在的问题是针对每个子部分的搜索,这似乎是合理的,因为范围有限,所以我认为我可以使用 mysql 很好地完成它。我没有预见到任何性能问题。但是对于站点范围的搜索,它不仅会搜索标题名称,还会搜索关键字、标签、描述,包括人们的邮件、cmets、历史数据等。所以我担心的是性能。由于这是一家初创公司,我的硬件资源有限,所以我必须 100% 依赖数据库和代码才能成功。
那么,从代码和数据库的角度来看,实现此类搜索的最佳做法是什么?是否应该根据子站点使用混合数据库?目前所有内容都存储在 1 个 mysql 数据库中。但我看到它可能适用于人物搜索、电影搜索等的问题,但如果我包括邮件搜索、地理位置、历史数据搜索,甚至不得不去搜索照片标签、照片描述等项目 -> 所有部分在全局搜索中,由于连接数和行数过多,可能会出现性能问题。
【问题讨论】: