gpt4 book ai didi

mysql - 在 MySQL 中存储搜索引擎记录时处理日期时间的最佳方法?

转载 作者:行者123 更新时间:2023-11-29 04:20:05 24 4
gpt4 key购买 nike

我有一张 table :

URL | last_crawled | worker_id | worker_assign_date

url 显然是任何 url。 last_crawled 是一个日期字段,用于存储上次抓取该字段的时间。工作人员 ID 是当前分配给此 URL 的工作人员的 ID。 worker_assign_date 是将 URL 分配给爬虫的时间。这样一来,如果工作人员 X 抓取 URL 的时间太长,我只会将该 URL 分配回另一个工作人员。

我的问题是,鉴于我将大量按 worker_assign_date 和 last_crawled 进行排序,该类型应该是什么?

第一优先是速度,哪个排序更快? Int 还是 DateTime?

第二优先级是尺寸。 int 占用的空间比 DateTime 少还是多?

请注意:互联网大约有 50 亿页。该数据库将保存所有 500 万个 URL 并进行更新等。我将使用 InnoDB,因此我只能锁定单行。

更新

将“工作”到 2099 年的 unix 时间戳将为 4099770061,因此将其存储为 INT(10) 将绰绰有余。根据mysql documentation ,这将占用 4 个字节。日期时间字段将占用 8 个字节。因此,似乎时间戳至少更小。是真的吗?

此外,最后一个问题仍然存在,在排序过程中哪个更快?有区别吗?

最佳答案

我找到了一篇文章,可以解决您的确切问题。 Int 明显更快。这个线程有一个人运行了性能测试,这些测试非常支持 int 而不是 datetime。

MySQL Integer vs DateTime index

关于mysql - 在 MySQL 中存储搜索引擎记录时处理日期时间的最佳方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26794848/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com