动态增加数量的可行性。数据库中的表和行 [重复]

Posted

技术标签:

【中文标题】动态增加数量的可行性。数据库中的表和行 [重复]【英文标题】:Feasibility of dynamically increase in no. of tables and rows in a database [duplicate] 【发布时间】:2011-09-19 05:21:48 【问题描述】:

可能重复:Insert many rows to one table OR insert rows separately to many table?

100个10000行的表和1000个1000行的表哪个更好?

上面的问题只是一个基础,没有以下条件是不能完成的。

条件:

R1-编号第一种情况下的行数。 R2-编号第二种情况下的行数。 T1-No.第一种情况下的表格。 T2-编号第二种情况下的表格。 R1 和 R2 动态(急剧)增加,超过给定限制的样本。 T1 是恒定的。 T2 动态增加(与 r1 成正比) 不关心表管理和数据库的简单性。 只对最短查询执行时间和最短服务器加载时间感兴趣。 数据库 - MySql 语言 - php

问题:

查询执行时间和服务器加载时间(最低 RAM 使用量)。 动态增加编号的可行性。数据库中的表。 动态增加编号的可行性。表中的行数。

除了答案之外,还邀请了上述数据库技巧。

【问题讨论】:

1 带有1,000,000 行的表。 请阅读以上问题/答案:***.com/questions/5999641/…如果和您遇到的问题类似,则无需进一步搜索。将表的数量保持在标准化所需的最低水平(5、40、100,无论您需要什么),但保持不变,让行数无限增长。 thedailywtf.com/Articles/Confessions-The-Shopping-Cart.aspx 这看起来又是一个骗子。老实说,人们会尝试自己做功课。如果你在学习过程中作弊,你就无法在专业上取得成功。 谁说这是家庭作业。我把这个问题做成了任何人都可以理解的方式。 【参考方案1】:

您的问题有很多,如果有更多信息会有所帮助,但以下是我的一些想法:

与数据库接口的语言通常不是一个因素——您应该尽可能地努力限制所需的连接和消息的数量(即使用连接而不是与 PHP 通信两次),但是因为好的设计正在做尽可能多地在 DB 端进行数据选择/排序工作(因为 that's what they're for) 如果所有表都具有相同的结构,那么在处理大量选择时通常最好使用一个表 - UNION,至少在我的经验中,通常是一个缓慢的野兽。 如果您真的很担心一次只访问一小部分数据,那么我建议您将所有内容保存在更少的表中并创建视图。 Don't care about table management and simplicity of database 是一个糟糕的政策。所有编程的最佳实践都适用于数据库设计。请记住,不知道您的想法的人将继承此项目,而这可能就是您。

就个人而言,我认为我们中的很多人都曾使用过 1M 线表,而且我知道我不想将其作为一系列UNIONs、@987654325 来处理@s 和 JOINs。至少,当它都是相同的表设计时,不是。

【讨论】:

【参考方案2】:

既然一百万行是一个很小很小的表,为什么还要考虑将它分成 100 个表或 1000 个表?

【讨论】:

以上是关于动态增加数量的可行性。数据库中的表和行 [重复]的主要内容,如果未能解决你的问题,请参考以下文章

关于MySQL中的表锁和行锁

使用动态加载的表和数据库名称在查询中避免 SQL 注入

如何增加 HBase 表中的区域数

如何快捷地查询Oracle中每个用户表的表名和行数?

从未知数据库 SQL 和 Java 中查找外键

如何从特定数据库中检索具有行数的表名?