【问题标题】:Database architecture / Array as Column / various sizes数据库架构 / 数组作为列 / 各种大小
【发布时间】:2018-03-08 04:07:00
【问题描述】:

您好,我正在寻找有关我的 Webcrawler 项目(在 java 中)的数据库(mysql)的建议。

我正在 Twitter 上收集有关不同频道(大约 2000 个)的信息,有些有很多推文,有些则更少。总之,我只需要存储频道信息(名称、id)和每条推文的一些基本信息(id、时间、喜欢、转发)。

我的第一个想法是有一个表格“频道”,每个频道都有一行,并且在每一行中都有一个包含所有推文(从 10 到 10000)的 BLOB 字段“推文”。 现在这个版本在查询单个推文或特定时间跨度时有点不灵活。 但是当所有推文都有一个单独的表格时,我担心性能问题,即。 e.在大约 1000000 条推文的列表中搜索 200 个元素..

我将如何解决这种情况?我没有能力测试这两种情况的性能,这就是我问的原因:/

感谢您的阅读!

【问题讨论】:

  • 使用两张表,在通道id列上创建索引。

标签: java mysql database jdbc database-design


【解决方案1】:

两张桌子

频道:id |频道 ID |名字

推文:id |推文 ID |频道 ID |时间 |喜欢 |转推

id 是来自您的数据库的内部数据库 ID(不是推文或频道 ID)。 tweets 表中的 channelId 指的是它所属频道的内部数据库 id(外键)

关于您的性能问题:How many rows in a database are TOO MANY?

【讨论】:

    【解决方案2】:

    过早的优化是万恶之源。

    使用单独的表。

    【讨论】:

      猜你喜欢
      • 2012-11-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-05-30
      • 1970-01-01
      • 2010-12-24
      • 2010-11-05
      相关资源
      最近更新 更多