› 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 · 3875 views
    This topic created in 2925 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
    infoflow
    Oct 31, 2018❤️1
    1
    把 a 表的数据索引到到 elasticsearch 中,然后用 b 表中的 keyword 检索就行了。比数据库的 like 语句块。
    aborigine
    aborigine
    OP
    Oct 31, 2018
    2
    @infoflow #1 es 么。。
    ccpp132
    ccpp132
    Oct 31, 2018❤️1
    3
    数据全拉出来多模匹配
    westoy
    westoy
    Oct 31, 2018❤️2
    4
    拿空间换时间
    建个 a b 关联的中间表 c, 取数据直接这里取
    插入 a 就扫一下新条目包含哪些关键词, 然后插入 c
    插入 b 就扔到队列, 闲时扫一下 a 里哪些包含这个新条目, 然后插入 c
    删除 a,b 就删掉 c 里对应的条目

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