gpt4 book ai didi

Mysql 性能 : IP direct as BINARY or via reference

转载 作者:行者123 更新时间:2023-11-30 23:11:21 25 4
gpt4 key购买 nike

我在一个表中有一个日志,每月增加 420000 个条目。我需要经常检查其中的许多条目,因此 select 应该在此表上运行得很快。这些表中的所有值都是 int(4),除了 IP 地址是 Binary(4)。

最好创建一个额外的 IP 表,并只在日志表中存储 ip 的 id,或者 BINARY 比较如此之快,INT 比较如何?

最佳答案

IPv4 数字实际上可以与 int 互换,这意味着您可以将 int 转换为 IP 地址,反之亦然,不会丢失数据(int 是 4 个字节长)。所以你不应该真的需要这个带有“ids”的附加表。

回答您的主要问题:将 IP 存储为 int 应该更快 - 您可以自己执行测试并收集准确的统计数据。

话虽如此,我对您的数据模型几乎没有怀疑。首先是您是否存储 Internet IP 地址?如果是这样,您还应该考虑存储 IPv6 地址。另一件事是你提到你会经常查询这个表(期望选择运行得快),同时每分钟插入 ~233 条记录。我不知道您要使用哪个引擎,但使用 InnoDb 可能无法正常工作——您会遇到锁问题。避免这种情况的一种方法是根据时间和查询当前未使用的分区对数据进行分区。还要小心索引,因为索引过多会减慢插入速度。您可能还有一个用于插入的单独表和用于选择的分区索引重表。您可以在插入率较低时在它们之间移动数据。你怎么看?

关于Mysql 性能 : IP direct as BINARY or via reference,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19611787/

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