gpt4 book ai didi

mysql - 替代存储大量表——MySQL

转载 作者:行者123 更新时间:2023-11-29 03:13:09 25 4
gpt4 key购买 nike

嗯,我一直在处理大量的网络数据。我必须在其中过滤掉一些 IP 地址并存储它们与其他 IP 的通信。但是 IP 的数量很大,有几十万,我必须为此创建很多表。最终我的 MySQL 访问会变慢,一切都会变慢。每个表都会有很少的列,很多行。

我的问题:
有没有更好的方法来处理这个问题,我的意思是存储每个 IP 的数据?
是否有表格之类的东西?

[编辑]我存储在不同表中的原因是,随着时间的推移,我必须不断删除和添加条目。
这是表格结构

创建表 IP(syn_time datetime, source_ip varchar(18), dest_ip varchar(18));

我使用 C++ 通过 ODBC 连接器进行访问

最佳答案

  • 不要频繁地删除/创建表。 MySQL 这样做有很多错误,这是可以理解的——它应该只在新机器上创建数据库时执行一次。它会损害缓冲池命中率和磁盘 IO 等因素。

  • 请改用 InnoDB 或 xtradb,这意味着您可以在插入新行的同时删除旧行。

  • 将 IP 存储在 int(10) unsigned 类型的列中,例如192.168.10.50 将存储为 (192 * 2^24) + (168 * 2^16) + (10 * 2^8) + 50 = 3232238130

  • 将所有信息放入 1 个表中,只需在索引列上使用 SELECT ... WHERE

关于mysql - 替代存储大量表——MySQL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4976473/

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