我在一个房地产网站工作,我有大型数据库,表中有250个字段,表中有15万(150万)个记录。我想在网站上提供搜索功能,所以,我应该如何设计数据库,以便我可以从这些15万字节记录快速搜索属性。我想将网站设为http://www.redfin.com/。
是否有效的所有15万条记录应该在一个表中进行搜索?
我不明白我应该如何设计数据库?我正在使用PHP + Mysql,所以我也想问一下这种大型数据库处理的首选存储引擎(MyISAM,InnoDB等)?
请帮帮我。
答案 0 :(得分:3)
--Apply pagination
--Apply Indexing
--Code optimization
--Maintain Dry principle
--Applying Data sharding concept
--Write optimized queries
--Perfect schema design & associations
答案 1 :(得分:2)
您是说您的数据库由一个表组成?这就是单个表中250个字段对我的意义。如果是这样,我建议您咨询设计专家,以使您的架构正常化。
就性能而言,只要您设计正确的密钥和索引,MySQL InnoDB就足够了。诀窍是了解您需要的查询并创建索引以使其尽可能高效。
您的表可能有250列,但我认为典型的查询大部分时间都会在列组合之后进行。这些组合是您需要索引的。
1500万行不是一个惊人的数字。您可能会发现规范化会大大减少这个数字,因为您不会有那么多的重复数据。真正大型的数据库以TB为单位。
答案 2 :(得分:0)
我认为你需要考虑规范化(谷歌它,阅读然后回来并在必要时打开一些新问题)。
记录的数量必须非常大才能影响性能,而非常大的记录取决于所使用的RDBMS。例如。对于Oracle来说,1500万是巨大的,对于Oracle来说是中档。但是数据结构在任何RDBMS中都很重要。因此,规范化是关键。