相关疑难解决方法(0)

如何分析~13GB的数据?

我有大约300个文本文件,其中包含跟踪器,种子和同伴的数据.每个文件的组织方式如下:

tracker.txt

time torrent
    time peer
    time peer
    ...
time torrent
...
Run Code Online (Sandbox Code Playgroud)

我有每个跟踪器的几个文件,并且重复了大部分信息(相同的信息,不同的时间).

我希望能够分析我所拥有的内容,并报告有关事情的统计数据

  • 每个跟踪器有多少种子
  • 列出的种子有多少跟踪器
  • 洪流有多少同行
  • 对同龄人有多少种洪流

数据的庞大数量使我难以接受.这是我尝试过的.

MySQL的

我把所有东西都放进了数据库; 每个实体类型一个表和用于保存关系的表(例如,此torrent位于此跟踪器上).

将信息添加到数据库的速度很慢(当我尝试这个时,我没有13GB的信息),但之后分析这些关系是不行的.每个稍微复杂的查询都需要24小时才能完成(如果有的话).

一个示例查询将是:

SELECT COUNT(DISTINCT torrent) 
    FROM TorrentAtPeer, Peer 
    WHERE TorrentAtPeer.peer = Peer.id 
    GROUP BY Peer.ip;
Run Code Online (Sandbox Code Playgroud)

我尝试在我的my.cnf文件中增加内存分配,但似乎没有帮助.我使用了my-innodb-heavy-4G.cnf设置文件.

编辑:添加表格详细信息

这是我正在使用的:

Peer         Torrent                  Tracker        
-----------  -----------------------  ------------------  
id (bigint)  id (bigint)              id (bigint)
ip* (int)    infohash* (varchar(40))  url (varchar(255))
port (int)

TorrentAtPeer      TorrentAtTracker
-----------------  ----------------
id (bigint)        id (bigint)
torrent* (bigint)  torrent* (bigint)
peer* (bigint)     tracker* (bigint) …
Run Code Online (Sandbox Code Playgroud)

java database matlab large-data

17
推荐指数
2
解决办法
806
查看次数

用scanf读取小int

有没有办法读取一个小的int(即范围-128..127的1字节int)使用scanf?考虑以下代码:

char x;
scanf("%d", &x);
Run Code Online (Sandbox Code Playgroud)

程序将读取一个int,最可能是4个字节,并尝试将其写入x的地址,从而违反了该地址后存储器中的3个字节.

我知道有一个短的int(%h)的修饰符,但我还没有听说过一个小的int(char)?

c scanf

1
推荐指数
1
解决办法
1239
查看次数

标签 统计

c ×1

database ×1

java ×1

large-data ×1

matlab ×1

scanf ×1