首页   注册   登录
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
拉钩
V2EX  ›  问与答

想查询一个超大的文本文件内容

  •  
  •   lxy · 2015-12-13 14:11:30 +08:00 · 1345 次点击
    这是一个创建于 1096 天前的主题,其中的信息可能已经有所发展或是发生改变。
    拿到一个文本文件,大小 20G 左右,虽然可以用 WinHex 查找,但是每次查不到一半就很卡(内存占用飙升),而且考虑到以后偶尔还会查询,所以想存入数据库。我打算用 Python 写个脚本批量导入 Mysql ,做索引,字段也不多。不知是否可行?或有其它更好的办法?
    PS. 笔记本只有 4G 内存。
    12 回复  |  直到 2015-12-13 17:47:44 +08:00
        1
    gamexg   2015-12-13 14:23:51 +08:00
    能说清楚查询的类型吗?
    数字、时间之类的能做索引,纯文本开头匹配也能做索引。
    但是要是纯文本内部包含关键字那你需要全文搜索。
        2
    xufang   2015-12-13 14:29:08 +08:00
    呵呵,社工库,还是用 sqlserver 吧,傻瓜并且性能也够。
        3
    uuspider   2015-12-13 14:34:12 +08:00
    sed awk 应该可以胜任。
        4
    lxy   2015-12-13 14:42:05 +08:00
    @gamexg
    @xufang 嗯,就是社工库的类型
    @uuspider 主要考虑在 Windows 环境下完成
        5
    joshz   2015-12-13 15:04:56 +08:00
    @lxy 这几个工具都是跨平台的吧,也可以考虑 Cygwin ,当然性能会差些
        6
    xufang   2015-12-13 15:07:59 +08:00 via Android
    @joshz cygwin 的 io 性能呵呵。真要用 sed 和 awk 别用 cygwin 或 msys 封装过的,应该用 gnuwun32 那一类的。
        7
    xufang   2015-12-13 15:11:01 +08:00 via Android
    说个笑话,我厂不止一个人反应在 cygwin 编译比放在 linux 虚拟机下用 mingw 编译还要慢了。
        8
    joshz   2015-12-13 15:13:39 +08:00
    @xufang 嗯,只是提供一种方案,直接移植的性能当然好很多。
        9
    Valyrian   2015-12-13 16:17:47 +08:00
    难道不是 cat xxx.txt | grep xxx ?
        10
    9   2015-12-13 16:30:25 +08:00
    @Valyrian cat + grep 典型的用法错误,要纠正过来啦。
        11
    msg7086   2015-12-13 16:46:16 +08:00
    @xufang msys2 性能很差吗?
    没比较过不过直觉上用 gcc 编译完以后应该也是原生性能吧?

    @Valyrian 比 grep xxx xxx.txt 好在哪里?
        12
    Rubin   2015-12-13 17:47:44 +08:00
    为什么不是先把这个 20G 的文本做切分呢,然后再 Python 写脚本处理不就简单多了么。
    关于   ·   FAQ   ·   API   ·   我们的愿景   ·   广告投放   ·   感谢   ·   实用小工具   ·   3234 人在线   最高记录 4019   ·  
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.1 · 20ms · UTC 05:08 · PVG 13:08 · LAX 21:08 · JFK 00:08
    ♥ Do have faith in what you're doing.
    沪ICP备16043287号-1