会话还是 SQL? [关闭]

Posted

技术标签:

【中文标题】会话还是 SQL? [关闭]【英文标题】:SESSION or SQL? [closed] 【发布时间】:2014-02-08 16:13:42 【问题描述】:

我一直在使用我已经编写了很长一段时间的机器人,它工作得很好。 它进入一个域,解析索引,将所有内部链接保存在会话 var 中(我们称之为 array1),然后刷新自身,将索引移动到另一个会话 var(array2)并从 array1 中删除它,解析下一页在 array1 中,检查它找到的新内部链接是否已经在两个数组中的任何一个中,如果没有,则将它们保存在 array1 中,依此类推。它基本上列出了域中的所有页面。

这个机器人一直在爬一些相当大的网站(20k+ 页),它做得很好,只是花了一些时间,但这并没有打扰我。现在我想让它抓取一些更大的网站(超过 20 万页),我想听听您对处理数据的最佳方式的意见。

我应该继续进行会话吗?我知道会话使用磁盘空间,即使我的树莓派非常稳定,它是否能够处理 20Mb+ 的变量? 我应该将所有 URL 保存在 sql 表中吗?什么情况下sql能处理这么多数据?

谢谢。

(我在网上搜索过,但似乎没有什么与我所经历的非常接近)

【问题讨论】:

【参考方案1】:

TLDR:我敢打赌,在遇到 mysql 的特定限制之前,您会遇到完全不同的问题(存储空间、计算能力、操作系统限制)。


MySQL 限制:

按字段按类型 (http://www.electrictoolbox.com/maximum-length-mysql-text-field-types/):

TINYTEXT     256 bytes   
TEXT         64kb
MEDIUMTEXT   16MB
LONGTEXT     4GB

按平台按表 (http://dev.mysql.com/doc/refman/5.0/en/table-size-limit.html)

Win32         FAT/FAT32    2GB/4GB
Win32         NTFS         2TB (possibly larger)
Linux 2.2 x86              2GB (LFS: 4GB)
Linux 2.4+    ext3         4TB
Solaris 9/10               16TB
MacOS X       HFS+         2TB
NetWare       NSS          8TB

【讨论】:

非常感谢,我知道大小限制,但我不确定 sql 处理它的能力如何,我的意思是当返回 100MB 结果时 sql 会非常慢吗?我现在得到了答案。干杯! tagide.com/blog/2012/08/how-to-handle-large-data-in-mysql post 有点表明 100MB 的结果集没有什么不寻常的。 这篇文章真的很有帮助。我不会像那个人那样有那么多问题,因为我“只”需要选择数十万或几百万行,仅此而已,并且总是需要选择所有行。我应该没事,我今晚晚些时候试试。再次感谢!【参考方案2】:

当然,数据库可以处理比会话更多的数据。它们就是为此而设计的。对于 MySQL、Postgresql 或 MS SQLserver,一些 GB 的大型数据库并不令人兴奋。

【讨论】:

以上是关于会话还是 SQL? [关闭]的主要内容,如果未能解决你的问题,请参考以下文章

实体框架还是其他? [关闭]

处理 SQL server 数据库中的特殊字符,应该使用 varchar 还是 nvarchar? [关闭]

会话和 cookie 之间的关系 [关闭]

如何使用会话存储以角度区分窗口关闭和窗口刷新

“关闭hyper-v管理器前你必须关闭所有会话框”的解决方法

共享内存 (SHM) 中的 OpenSSL 会话池可能吗? [关闭]