如何处理大型数据库?

时间:2010-01-11 10:42:39

标签: mysql

我在一个房地产网站工作,我有大型数据库,表中有250个字段,表中有15万(150万)个记录。我想在网站上提供搜索功能,所以,我应该如何设计数据库,以便我可以从这些15万字节记录快速搜索属性。我想将网站设为http://www.redfin.com/

是否有效的所有15万条记录应该在一个表中进行搜索?

我不明白我应该如何设计数据库?我正在使用PHP + Mysql,所以我也想问一下这种大型数据库处理的首选存储引擎(MyISAM,InnoDB等)?

请帮帮我。

3 个答案:

答案 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中都很重要。因此,规范化是关键。