首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >拥有许多MySQL表的缺点?

问拥有许多MySQL表的缺点?
EN

Stack Overflow用户
提问于 2013-07-24 20:05:09
回答 1查看 1.2K关注 0票数 2

我想知道多张桌子(比方说大约100,000张)的缺点是什么,而不是一张大桌子。一个例子是每个用户拥有一个表,或者对于所有user_id是索引的用户都有一个大表。

例如,其中一个名为stuff

代码语言:javascript
复制
+----------+---------+------+-----+---------+-------+
| Field    | Type    | Null | Key | Default | Extra |
+----------+---------+------+-----+---------+-------+
| id       | int(11) | YES  |     | NULL    |       |
| user_id  | int(11) | YES  |     | NULL    |       |
| x        | int(11) | YES  |     | NULL    |       |
| y        | int(11) | YES  |     | NULL    |       |
|    .     |    .    |   .  |  .  |    .    |   .   |
|    .     |    .    |   .  |  .  |    .    |   .   |
|    .     |    .    |   .  |  .  |    .    |   .   |

相对于许多这样的地方,每个都被称为[user_id]_stuff。这样,我就知道要去哪个表,给出一个user_id。

代码语言:javascript
复制
+-------+---------+------+-----+---------+-------+
| Field | Type    | Null | Key | Default | Extra |
+-------+---------+------+-----+---------+-------+
| id    | int(11) | YES  |     | NULL    |       |
| x     | int(11) | YES  |     | NULL    |       |
| y     | int(11) | YES  |     | NULL    |       |
|   .   |    .    |   .  |  .  |    .    |   .   |
|   .   |    .    |   .  |  .  |    .    |   .   |
|   .   |    .    |   .  |  .  |    .    |   .   |

我的直觉告诉我,拥有许多表会运行得更快,但是拥有一个表将更容易维护/更健壮。

此外,是否会出现安全问题,因为用户的id正在连接以生成表名?不过,我想检查所提供的id是否为数字是很容易的。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-07-24 20:11:18

我的直觉告诉我,拥有许多表会运行得更快,但是拥有一个表将更容易维护/更健壮。

许多结构相同的表将与正交设计原理相反。

,,不要这么做。至少不是没有很好的理由--有了合适的索引,每个表上的数百万条记录就足以让MySQL轻松地处理,而无需进行分区;即使确实需要对数据进行分区,也存在更好的方式而不是这种手工拼凑(这会导致数据不明确、潜在不一致的数据,并导致数据操作代码中的冗余和复杂性)。更别提了,在MySQL,联接被限制为最多61个表。里。

相反,单表方法是解决问题的正确方法。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17843823

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档