我正在编写一个系统来搜索房地产列表的MySQL数据库。我很关心性能,并希望就如何处理这个问题提供一些意见。MySQL性能规划
查询次数最多的表格是'列表'表格,它将包含超过600k个包含86列的记录。此表格也将随着列表更改每30分钟更新一次。
几乎每一次搜索都会反对'active'状态的记录,这将会是600k记录中的15k。但是,我需要保留我们内部报告的所有记录。此外,每个查询可能会搜索各种参数(#beds,#baths等),因此缓存可能不可行。
我正在考虑维护第二个包含标记为“active”的记录PK的表。创建列表的PK中加入的表的视图。但是,我知道在某些情况下,Views可能效率很低。
我确实有过维护两个数据库的想法,因为不活动的列表不会经常搜索,而且需要较少的维护。
幸运的是,它尚未投入生产,我有时间进行性能测试。还有一件事,它将托管在专用的Linux服务器上,前端用PHP编写。任何提供的见解都非常感谢。
** 86 **列?真?我认为你需要重新考虑你的设计。 – Kermit
我不会创建一个单独的表。 MySQL不应该使用状态作为标准来搜索600K记录。您可以将状态字段编入索引以提高性能并频繁搜索字段。 – Tom
“维护第二个包含标记为'active'的记录的PK的表格”< - 您是否计划手动编写索引?因为只是在该列上使用索引而不是简单而快速。此外,你的大部分专栏是小的还是数字的(如提到的床数)? – Carsten