› 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
aborigine
V2EX  ›  MySQL

求一个多关键字匹配问题

  •  
  •   aborigine · Oct 31, 2018 · 3693 views
    This topic created in 2885 days ago, the information mentioned may be changed or developed.
    MySQL 有 A,B 两张表,
    A 表 id goods_name,
    B 表 keyword,
    A 表每天大约 60 万数据,B 表大约 200 个 keyword 更新较少,
    然后要求输出 a 表中包含 B 表 keyword 的 goods_name 及相关的 keyword.

    由于服务器性能比较渣,所以求问有没有个效率比较高的方法求出来,sql,python 之类的都行.
    8 replies  •  2018-10-31 23:47:17 +08:00
    infoflow
        1
    infoflow  
       Oct 31, 2018   ❤️ 1
    把 a 表的数据索引到到 elasticsearch 中,然后用 b 表中的 keyword 检索就行了。比数据库的 like 语句块。
    aborigine
        2
    aborigine  
    OP
       Oct 31, 2018
    @infoflow #1 es 么。。
    ccpp132
        3
    ccpp132  
       Oct 31, 2018   ❤️ 1
    数据全拉出来多模匹配
    westoy
        4
    westoy  
       Oct 31, 2018   ❤️ 2
    拿空间换时间
    建个 a b 关联的中间表 c, 取数据直接这里取
    插入 a 就扫一下新条目包含哪些关键词, 然后插入 c
    插入 b 就扔到队列, 闲时扫一下 a 里哪些包含这个新条目, 然后插入 c
    删除 a,b 就删掉 c 里对应的条目

    渣服务器强上 es 大概率求仁得仁了
    feverzsj
        5
    feverzsj  
       Oct 31, 2018   ❤️ 1
    全文索引,不过 mysql 自带的比较烂,服务器性能差的可以用 Sphinx,性能完爆 es
    aborigine
        6
    aborigine  
    OP
       Oct 31, 2018
    @westoy #4 这思路不错啊,值得一试
    aborigine
        7
    aborigine  
    OP
       Oct 31, 2018
    @feverzsj #5 ok,我也去研究一下 Sphinx
    fireapp
        8
    fireapp  
       Oct 31, 2018 via iPhone   ❤️ 1
    keyword 生成 trie 树,然后一条条过一遍就行了
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   2483 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 40ms · UTC 09:50 · PVG 17:50 · LAX 02:50 · JFK 05:50
    ♥ Do have faith in what you're doing.