在mysql上分区或不分区

Posted

技术标签:

【中文标题】在mysql上分区或不分区【英文标题】:Partitioning or not a table on mysql 【发布时间】:2021-07-31 03:59:11 【问题描述】:

我知道我的问题没有“好的”答案,而且它是基于意见的。但由于我现在是自学这些东西,所以我需要建议。

我在 mysql 上有一张关于“客户”的表格。在此表中有涉及客户信息的列,例如姓名、姓氏、出生日期、地址等。

每个客户都有自己的凭据(用户名、密码)。

现在我的问题是:最好将凭据保存在“客户”表中,或者创建一个单独的表是有意义的,以保证这些凭据的保护,并跟踪更改他们一直在,而不浪费空间重复所有其他客户的信息?

【问题讨论】:

【参考方案1】:

您需要回答一些关于您的数据的问题:

列会改变吗?人们会更改姓名、地址等。 凭据会发生变化,至少密码会发生变化。 您需要什么样的历史记录?

我的建议是用于不同目的的不同表格集:

    一个表,用于定义客户 ID 和任何其他不可变信息(可能是成为客户的日期和相关信息)。 一个或多个带有 PII(个人身份信息)的表格。出于监管和隐私原因,您希望将 PII 分开。 历史表。你如何做到这一点取决于你的数据模型和你需要什么。一种简单的方法是数据模型中的每个表都有一个存档表。不过,我可能会推荐类型 2 表(即具有版本生效和结束日期的表)。 用于凭据的单独表。这些比 PII 更敏感,您需要控制访问权限。

记住永远不要存储明文密码。而且您通常希望保留密码历史记录,以防止用户使用之前的密码。

【讨论】:

【参考方案2】:

最好在 person 表中创建个人信息,在与客户有关系的另一个表中创建附加客户信息,如果您在另一个表中还有关于此人的任何其他信息并将其链接到 person 表.

【讨论】:

以上是关于在mysql上分区或不分区的主要内容,如果未能解决你的问题,请参考以下文章

17.Mysql分区

mysql表分区使用及详细介绍

MySQL分区表使用方法

mysql 啥时候分区 啥时候分表

MySQL 分区

Mysql 分区介绍 —— HASH分区