V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
MySQL 5.5 Community Server
MySQL 5.6 Community Server
Percona Configuration Wizard
XtraBackup 搭建主从复制
Great Sites on MySQL
Percona
MySQL Performance Blog
Severalnines
推荐管理工具
Sequel Pro
phpMyAdmin
推荐书目
MySQL Cookbook
MySQL 相关项目
MariaDB
Drizzle
参考文档
http://mysql-python.sourceforge.net/MySQLdb.html
ifconfig
V2EX  ›  MySQL

52G 的库,用什么办法检索速度最快?

  •  
  •   ifconfig · 2016-04-04 14:23:34 +08:00 · 9594 次点击
    这是一个创建于 3188 天前的主题,其中的信息可能已经有所发展或是发生改变。

    只导了 126 的数据到 mysql 已经有 10G ,做了索引, like 语法查起来还是很慢。(平均: 45s 设备: 256SSD+i5 ) 要想达到 163password.download 查询的速度,该用什么技术或架构?

    63 条回复    2016-04-06 17:59:24 +08:00
    Bryan0Z
        1
    Bryan0Z  
       2016-04-04 14:43:03 +08:00 via Android
    这网站为什么会返回乱码,是我的密码还没泄露?
    另外参照 找密码网的源码,人家 500G 数据, 30 多个库速度也在 10 秒以内
    zonghua
        2
    zonghua  
       2016-04-04 14:43:25 +08:00 via iPhone
    按首字母分库啊,并行查找
    yeyeye
        3
    yeyeye  
       2016-04-04 14:46:05 +08:00   ❤️ 4
    他的是精确查找 你的是 like 查找 不是一个道理吧。只是要精确查找的话 还可以分成很多个表,查询速度必然迅捷无比。最简单的按 2 位首字母分表就可以分至少 1296 个 查询的时候做下判断就可以精确的去相应的表里面查 性能直接提升 1296 倍 你的 45S 马上就变成了 0.0347S
    dapang1221
        4
    dapang1221  
       2016-04-04 14:53:48 +08:00
    Sphinx
    kslr
        5
    kslr  
       2016-04-04 15:16:37 +08:00
    话说那个 TXT 里面乱七八糟的格式,我导了 100 万就放弃了,太麻烦了。
    Flygoat
        6
    Flygoat  
       2016-04-04 15:32:11 +08:00 via iPhone
    mongodb ?
    416877140
        7
    416877140  
       2016-04-04 15:36:35 +08:00   ❤️ 1
    @Bryan0Z 改 utf8 编码就好了
    ifconfig
        8
    ifconfig  
    OP
       2016-04-04 15:39:03 +08:00 via iPhone
    @yeyeye 虽然不是太懂,感觉好牛叉的样子,我先试试用首字母分区
    liyvhg
        9
    liyvhg  
       2016-04-04 15:44:22 +08:00
    全部加载到内存
    ifconfig
        10
    ifconfig  
    OP
       2016-04-04 15:44:23 +08:00
    @kslr 我用的是 LOAD DATA INFILE 语法,秒导
    ifconfig
        11
    ifconfig  
    OP
       2016-04-04 15:45:38 +08:00
    @Bryan0Z 哥们你说的找密码网的源码 ,有没有链接?
    ucaime
        12
    ucaime  
       2016-04-04 15:50:09 +08:00 via iPhone
    倒入到 ES 集群了,嗯,正在倒入,还有两个包,几个亿数据毫秒级。妈蛋这次的数据重复太多,去重略耗时间
    kslr
        13
    kslr  
       2016-04-04 15:50:29 +08:00
    @ifconfig 可是格式呢,里面有----切分的还有不定长度空格什么的
    ifconfig
        14
    ifconfig  
    OP
       2016-04-04 15:52:34 +08:00   ❤️ 3
    @kslr
    LOAD DATA INFILE 'path/info.txt' INTO TABLE xxx FIELDS TERMINATED BY '----' LINES TERMINATED BY '\n';
    多看点参数说明就好了
    ifconfig
        15
    ifconfig  
    OP
       2016-04-04 15:59:46 +08:00
    @ucaime 看来哥们是搞大数据专家,我准备上 sphinx 试试
    slixurd
        16
    slixurd  
       2016-04-04 16:03:42 +08:00
    Elastic Search 啊,虽然 like 这种通配符匹配还是很慢,但是分词后的模糊查询超快的,我们现在一个 index 就是 80G ,速度还超快。
    ifconfig
        17
    ifconfig  
    OP
       2016-04-04 16:05:51 +08:00
    @slixurd 牛叉,接触 ES 试试
    SlipStupig
        18
    SlipStupig  
       2016-04-04 16:17:49 +08:00   ❤️ 1
    mongodb+es 几十亿都没任何问题,这种杂乱数据注意一下清洗,如果要做规则或者杂乱格式转发请用 kettle ,不过话说学会都是一个月后的事情了
    SlipStupig
        19
    SlipStupig  
       2016-04-04 16:18:26 +08:00
    求裤子分享
    badcode
        20
    badcode  
       2016-04-04 16:23:40 +08:00
    ynyounuo
        21
    ynyounuo  
       2016-04-04 16:25:27 +08:00   ❤️ 1
    不先整理一下?我全部转为 UTF-8 然后合并到一个文件并且 sort -u 之后数据就只剩 12 GB 了,这还有大量重复的信息呢
    lichao
        22
    lichao  
       2016-04-04 16:32:47 +08:00 via iPhone
    这破事,网易官方有回应吗?
    RangerWolf
        23
    RangerWolf  
       2016-04-04 16:55:06 +08:00
    我觉得 163password.download 并不快啊~
    ucaime
        24
    ucaime  
       2016-04-04 17:20:33 +08:00 via iPhone
    @lichao 网易太鸡贼了,第一把所有曝出的库的邮箱标记为可疑,各种提示。第二把关键邮件比如苹果发来的要求手机验证查看,装糊涂吧
    ifconfig
        25
    ifconfig  
    OP
       2016-04-04 17:27:00 +08:00
    @ucaime 唧唧,这么一听你说,渣易真够贱的
    dingyaguang117
        26
    dingyaguang117  
       2016-04-04 17:28:41 +08:00
    163password.download 是不是不全啊? 我查了没有
    dingyaguang117
        27
    dingyaguang117  
       2016-04-04 17:30:41 +08:00
    @ynyounuo 为什么还需要转码? 邮箱密码不应该 ascii 就够了吗
    badcode
        28
    badcode  
       2016-04-04 18:04:38 +08:00
    有意思,一张图片一个小时多而已
    来自 v2 的 views 就有 300 多次
    guoer
        29
    guoer  
       2016-04-04 18:14:13 +08:00
    你们都下载好了?
    jiongjionger
        30
    jiongjionger  
       2016-04-04 18:22:39 +08:00
    只有 50 多 G ,直接丢内存得了
    soway
        31
    soway  
       2016-04-04 18:28:49 +08:00 via Android
    类似搜索引擎的做法
    ianisme
        32
    ianisme  
       2016-04-04 18:36:27 +08:00
    grep -nr 自己的邮箱啊!! *
    ifconfig
        33
    ifconfig  
    OP
       2016-04-04 18:53:38 +08:00
    @ianisme grep 效率太低了,还是上 ES 搜索系统试试
    SlipStupig
        34
    SlipStupig  
       2016-04-04 18:57:56 +08:00
    求下载地址啊
    ifconfig
        35
    ifconfig  
    OP
       2016-04-04 19:43:05 +08:00 via iPhone
    @SlipStupig v 站内就有的
    jhaohai
        36
    jhaohai  
       2016-04-04 19:49:49 +08:00 via iPhone
    索引对 like 无效
    kuzhan
        37
    kuzhan  
       2016-04-04 19:50:14 +08:00
    分表
    moult
        38
    moult  
       2016-04-04 20:06:35 +08:00
    模糊查找的话,还是基于 Lucene 吧。
    精确查找的话,关系型数据库也不会慢吧。或者试试看 Redis 。
    strwei
        39
    strwei  
       2016-04-04 20:07:35 +08:00
    试试文档数据库或者 Redis
    ifconfig
        40
    ifconfig  
    OP
       2016-04-04 20:26:49 +08:00 via iPhone
    @moult 这谢谢
    ifconfig
        41
    ifconfig  
    OP
       2016-04-04 20:27:01 +08:00 via iPhone
    @strwei 谢谢
    micookie1
        42
    micookie1  
       2016-04-04 20:29:39 +08:00
    我忘记密码的终于找回了
    strwei
        43
    strwei  
       2016-04-04 20:31:07 +08:00
    @ifconfig 以前做 bt 搜索网站的时候用的 redis 网站 n G 数据,查找很快
    linescape
        44
    linescape  
       2016-04-04 20:36:14 +08:00
    @dingyaguang117 我查了有我的邮箱但是不是我的密码。。。
    ucaime
        45
    ucaime  
       2016-04-04 21:53:13 +08:00
    http://www.03sec.com/usr/uploads/2015/04/2864323021.pdf

    03sec 的老文,可以参考,用了 coreseek
    ucaime
        46
    ucaime  
       2016-04-04 21:54:22 +08:00
    @jhaohai 谁说无效,正序索引 只要 like 不是%开始还是可以用的
    TemporaryID
        47
    TemporaryID  
       2016-04-04 23:23:19 +08:00
    导入数据: http://pastebin.com/2PyKHPjn
    Web 服务: http://pastebin.com/SErx0WNj

    用的是 LevelDB
    导入后大概 25GB
    服务器在 DigitalOcean 上
    楼上 @yeyeye 说的对,因为是精确匹配,所以快

    还有真的不要 DDoS 我好吗,我真的不是做这个的,只是玩玩 T_T
    ffwalle
        48
    ffwalle  
       2016-04-04 23:53:25 +08:00
    52g 根本小菜一碟,记得加索引。
    ffwalle
        49
    ffwalle  
       2016-04-04 23:59:29 +08:00
    哦,看到你说做 like 查询,呵呵,如果真的要快,那做 ngram 吧。。。
    powtop
        50
    powtop  
       2016-04-05 08:39:04 +08:00
    求裤子
    xinyewdz
        51
    xinyewdz  
       2016-04-05 09:03:02 +08:00
    刚查了,密码是四年前的。
    wyx
        52
    wyx  
       2016-04-05 09:56:24 +08:00
    歪个楼,解压密码是啥?
    ifconfig
        53
    ifconfig  
    OP
       2016-04-05 10:10:02 +08:00
    ifconfig
        54
    ifconfig  
    OP
       2016-04-05 10:10:12 +08:00
    @wyx baidu
    wyx
        55
    wyx  
       2016-04-05 10:17:42 +08:00
    @ifconfig 谢谢
    thanksir
        56
    thanksir  
       2016-04-05 11:04:41 +08:00
    靠,我的泄露了
    soulteary
        57
    soulteary  
       2016-04-05 12:27:10 +08:00
    @ynyounuo 粗筛选可以在转码前先执行 shasum 简单计算 hash ,然后再做分词。算了一下,大概重复的数据有 438 , 38.62%左右都是重复的。

    如果先转码,恐会浪费不少时间(机器多可忽略...)
    wwek
        58
    wwek  
       2016-04-05 12:53:51 +08:00
    没裤子穿,需要裤子
    ynyounuo
        59
    ynyounuo  
       2016-04-05 15:08:08 +08:00
    @soulteary
    嗯,学习了,所以大概缩下来有多大呢?
    soulteary
        60
    soulteary  
       2016-04-05 16:03:30 +08:00
    mime-type 错误 & 编码可能存在问题的有 3G 左右,有空特殊处理看看。

    32G 简单去重后 11G ,其实挺少的,继续筛下估计更少...

    @ynyounuo
    SlipStupig
        61
    SlipStupig  
       2016-04-05 16:10:34 +08:00
    @ifconfig 实在没找到地址
    dingyaguang117
        62
    dingyaguang117  
       2016-04-06 16:03:46 +08:00
    @ynyounuo sort -u , 请问你内存多大呢。。。 花了几个小时?
    ifconfig
        63
    ifconfig  
    OP
       2016-04-06 17:59:24 +08:00
    @dingyaguang117 内存 8G , i5 ,已经过去一个小时了, MacBook 好烫好烫好烫好烫
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   3589 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 30ms · UTC 05:03 · PVG 13:03 · LAX 21:03 · JFK 00:03
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.