0

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

4

3 回答 3

5

当然不是!

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

它将在 0.0001 秒内运行。

更新:

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

请尝试一些数据库设计教程/书籍,它们会对您有很大帮助。

于 2011-01-17T16:59:19.080 回答
0

如果您担心在同一个用户表中为每个用户存储多个条目,您可以为推文创建一个单独的表,其中tweet_id 引用用户。

我当然会选择一张用户表。

于 2011-01-17T17:05:02.670 回答
0

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

有一个例外 - 有时您通过分片(对数据进行分区)来优化数据库,但这种方法的优点与缺点一样多。缺点之一是像您描述的那样的查询需要很多时间。

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

于 2011-01-17T17:06:38.750 回答