php - SQL : many Many MANY tables vs one huge table? 哪个更快

标签 php mysql sql

我正在创建一个网站,我需要将用户的事件(类似于 stackoverflow 中的收件箱)存储在 sql 中。目前,我和我的队友正在争论最有效的方法;到目前为止,我们已经提出了两种替代方法:

  1. 为每个用户创建一个新表,并将表名设为 theirusername_activity。然后,当我需要获取他们的事件(发布、评论等)时,我只需获取该表并查看其中的行...
    • 最后我会有TON张 table
    • 可能更快
  2. 有一个名为 activity 的大表,其中有一个额外的字段用于用户名;当我想获取他们的事件时,我只需从该表中获取行 "...WHERE username=".$loggedInUser
    • 更少的 table ,更干净
    • (假设我正确地索引了表格,这还会更慢吗?)

任何替代方法也将不胜感激

最佳答案

"Create a new table for each user ... In the end I will have a TON of tables"

这绝不是使用关系数据库的好方法。

SQL 数据库可以完美地处理数百万行(甚至更多),即使是在商用硬件上也是如此。正如您已经提到的,您显然需要可用的索引来涵盖将对该表执行的所有可能查询。

关于php - SQL : many Many MANY tables vs one huge table? 哪个更快,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6725799/

相关文章:

php - 在 PHP 中没有前端的小型简单 CMS 在哪里?

php - 使用 zend 2 feed 解析 RSS 文件,我无法获取媒体标签

php - 使用表单 php>form>php 传递变量时出错

android - 无法从 Android 中的 Mysql 数据库获取个人资料图片 url

sql - 在 Oracle 中通过脚本插入的更快方法?

SQL 循环遍历列并将结果插入临时表

php - 尝试在构造函数中调用方法时出现 fatal error

php - 在年末输入当年的总值

mysql - 根据同一列的多行值获取计数

MySQL 从 n 中随机选择 m