【问题标题】:Storing domain names in sql在sql中存储域名
【发布时间】:2012-06-22 23:28:16
【问题描述】:

我应该规范化域名以拆分域名、子域、tld 吗?我将每秒添加大约 100 个域/子域,每秒查询大约 500 个域/子域。

我有一个计划,可以为 tlds http://data.iana.org/TLD/tlds-alpha-by-domain.txt 提供表格

我可以有另一个域名表和另一个子域表

事实上,我有一个在线网站正常运行时间服务,我希望每天检查所有可能的域的正常运行时间,大约每秒检查 100 次,然后爬网以查找更多信息。

最好的结构是什么。

【问题讨论】:

    标签: database database-design dns schema tld


    【解决方案1】:

    我会使用完整的主机名(例如 www.stackoverflow.com 和 stackoverflow.com 是不同的)。对于某些网站,两个特定的主机名可能是等价的,但对于其他网站则不然。我也看不出跟踪 TLD 会有什么用处(尤其是在即将到来的 TLD 爆炸之后)。

    我可以理解您为什么要按域对其进行分类,但请记住,两个不同的页面(http://example.com/store 和 http://example.com/wiki)可能设置完全不同(例如不同的编程语言和数据库) ,因此一个很容易在另一个运行良好的情况下停机。用户将需要基于每个 URL 的此信息。

    【讨论】:

    • 谢谢。但是我将如何存储 url,假设我将来会有大约 2 亿个 url。现在我的服务器已经爬网并在一个表中跟踪了大约 500 万个 url,但是查找和插入速度变慢了,因为数据库在过去 2 周内崩溃了 25 次,每次至少 1 小时。
    • 您可能想要使用非关系 (NoSQL) 数据库。
    【解决方案2】:

    如果您只存储完整的主机名,似乎很难运行有效的查询,例如*.stackoverflow.com。子字符串匹配将无法利用该字段上的任何索引。另一方面,存储完整的字符串更容易,效率较低的查询可能在很长一段时间内都不是问题。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-08-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-02-26
      • 2021-09-24
      • 2011-05-04
      • 2019-04-24
      相关资源
      最近更新 更多