会话还是 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? [关闭]