2011-01-17 53 views
0

我有一个数据库中的任何数量的用户(这可能是100,2000或3)我在做什么是使用mysql“显示表”和存储表名称在一个数组,然后我运行一个while循环,并获取每个表名称(用户的名称)并将其插入到一些代码中,然后我为每个表名称运行一段代码。拥有3个用户,该脚本大约需要20秒。它使用Twitter API并执行一些mysql插入。这是否是最有效的方式?最有效的方法来做到这一点PHP脚本

+0

那么每个用户都得到自己的表? – ndtreviv

+0

是的,这是不对的?我不想在一个表内混合用户 – benhowdle89

+0

为什么每个用户都有单独的表格?这是因为Twitter吗?你代表建议你不可能自己设计这样一个系统。 – Tesserex

回答

5

当然不是!

我不明白为什么你将每个用户存储在他们的表中。你应该创建一个users表并从那里选择。

它将在0.0001秒内运行。

更新:

表中有行和列。您可以将多个用户存储在行中,并将每个用户的信息存储在列中。

请尝试一些数据库设计教程/书籍,他们会帮助你很多。

+0

我这样做是因为每个用户都有一个名为tweet_id和tweet的列。我将如何做到这一点,但有一个表称为用户? – benhowdle89

+0

我会解决这个问题,只需添加一下,查看通用数据库设计。这可能会让其他开发者感到惊讶,但我实际上听说过其他人提出过这个设计想法。老实说,我不确定这个想法源自于对表格之间的连接缺乏理解,但是,唉,这是最好的答案。我可以想象世界上没有生产系统会为每个用户创建表格。这是疯狂。 – cgp

0

如果您担心为同一用户表中的每个用户存储多个条目,则可以为推文指定一个单独的表,其中tweet_id指向用户。

我肯定会去一个用户表。

+0

好吧,听起来不错。我想每个人都比桌子好多了 – benhowdle89

0

数据库针对处理多行进行了优化;一些使用的技术是索引,磁盘上数据的物理布局等。许多表上的操作总是会比较慢 - 这不仅仅是RDBMS的目标。

有一个例外 - 有时您通过分片(分区数据)优化数据库,但这种方法具有与缺点一样多的优点。其中一个缺点是像你所描述的查询需要很长时间。

您应该将所有用户放在一张表中,因为从逻辑角度来看 - 它们代表一个实体。

相关问题