如何扩展mysql表的增长

时间:2012-03-04 22:21:13

标签: php mysql mysql-management

所以我在网站上工作,将取代流量较大的旧网站,我在数据库中也会有很多数据,所以我向你们提问的是设计mysql的最佳方法是什么增长表?

我想分开让我们说5个表中有5 000 000行的表,有1 000 000行/表并在表之间建立关系,但我想这不是一个好选择,因为我会花很多资源和时间来确定我的数据在哪个表中。

或者你们可以给我一些有用的文章吗?

2 个答案:

答案 0 :(得分:1)

不,你对这段关系绝对正确。此技术称为Normalization,您可以在其中定义单独的表,因为这些单独的表会受到时间的影响并独立于其他表。

因此,如果您有一个酒店数据库,可以跟踪房间和客人,那么您就知道规范化是必要的,因为房间和客人是相互独立的。

但是您将在每个表中使用外键/代理键(例如,room_id),这些键可能与进入该特定房间的特定访客相关。

在你的情况下,规范化可以帮助你优化你的5000行,因为它不适合循环超过5000个元素并检索整个数据。

以下是一个强大的example,为什么规范化在数据库管理中至关重要。

答案 1 :(得分:1)

评论中提到的分区是一种方法,但是第一个检查的路径甚至是确定是否可以根据一些内部数据将大量数据分解为可行的块。

例如,假设您有一个巨大的联系人表。您基本上可以将数据分解为从ad,ej等开始的联系人。然后,当您去添加记录时,您只需确保将记录添加到正确的表中(我建议检查存储过程以处理此问题,以便逻辑在数据库中受到监管)。您还可能设置存储过程以从同一个表中获取数据。但是,通过执行此操作,您必须意识到使用自动递增ID将无法正常工作,因为您无法在不执行某些工作的情况下在所有表中维护唯一ID。

这些当然是简单的解决方案。有大量的大型数据集解决方案,其中还包括查看其他存储解决方案,集群,分区等。自己手动执行这些操作可以让您对某些可能的“手动解决方案”有所了解。