我在数据库中有任意数量的用户(这可能是100,2000或3)我正在做的是使用mysql“show tables”并将表名存储在一个数组中,然后我正在运行一个while循环并获取每个表名(用户名)并将其插入到某些代码中,然后我为每个表名运行所述代码段。有3个用户,此脚本大约需要20秒。它使用Twitter API并执行一些mysql插入。这是否是最有效的方式?
答案 0 :(得分:5)
当然不是!
我不明白为什么要将每个用户存储在他们的表中。您应该创建一个users
表并从那里进行选择。
它将在0.0001秒内运行。
更新
表格包含行和列。您可以在行中存储多个用户,并在列中存储有关每个用户的信息。
请尝试一些数据库设计教程/书籍,他们会帮助你很多。
答案 1 :(得分:0)
如果您担心在同一个用户表中为每个用户存储多个条目,则可以使用 tweet_id 引用该推文的单独表格。
我当然会选择一个用户表。
答案 2 :(得分:0)
数据库针对处理多行进行了优化;使用的一些技术是索引,磁盘上数据的物理布局等。许多表的操作总是会变慢 - 这不是RDBMS的构建。
有一个例外 - 有时您通过分片(分区数据)来优化数据库,但这种方法有许多优点和缺点。其中一个缺点是像你描述的那样的查询需要花费很多时间。
您应该将所有用户放在一个表中,因为从逻辑的角度来看,它们代表一个实体。