sql - 共享一张 table 还是不共享一张 table ?

标签 sql mysql database-design

现在在我的(测试版)网站上有一个名为用户数据的表,其中存储名称、哈希值(密码)、ipaddr、 session key 、电子邮件和消息号。现在我希望用户有个人资料描述、签名、位置(可选)以及其他内容。我应该把它放在一个单独的 mysql 表中吗?或者我应该共用 table 吗?为什么?

最佳答案

这称为vertical partitioning ,一般来说,无论您选择哪种选择,都不会产生太大差异。

一种垂直划分方法是将频繁更新的字段与很少更新的字段分开。想象一下 Stack Overflow 数据库中的一个 Users 表,其中包含 User_IDDisplayNameLocation 等...然后UpVotesDownVotesLastSeenNumberOfQuestionsAsked 等。第一组字段很少更改(仅在个人资料编辑时) ),而后者设置经常更改(正常事件时)。

另一种划分方法可能是在经常访问的数据和很少访问的数据之间进行划分。

这种分区在某些特定情况下可以产生更好的性能。

关于sql - 共享一张 table 还是不共享一张 table ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2926802/

相关文章:

mysql - 带条件计数-mysql

sql - 实现 "Like"功能

mysql - 使用 Google BigQuery 连续运行多个查询

php - 将多维数组插入mysql表

PHPMyAdmin 未创建关系

mysql - 我需要为新语言准备一个新表吗?

c# - 应用程序代码中的数据库访问架构

sql - 在 Amazon Redshift 中存储极小的值

php - 使用复选框和内爆数组构建 Mysql 查询

mongodb - 将聊天消息存储在 mongodb 集合中是个好主意吗?