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

300 万条数据的 mysql,检索一个 varchar(64)的 title 列有点慢

  •  
  •   azev · 2023-07-06 09:37:32 +08:00 · 1198 次点击
    这是一个创建于 505 天前的主题,其中的信息可能已经有所发展或是发生改变。

    怎么解决好一些?已经给这列做了索引了。
    问了 chatgpt ,有个选项看起来比较好,就是给这列做全文索引,然后全文检索。
    现在我是简单的把搜索词空格分开然后 or 检索。

    就是不知道那个全文检索能不能加快检索速度,还打算根据 title 进行排序。

    8 条回复    2023-07-06 14:49:29 +08:00
    nkidgm
        1
    nkidgm  
       2023-07-06 09:43:45 +08:00
    对于长字符串,可用如下方式建立索引:
    ( 1 )前缀索引
    ( 2 )字符串倒叙+前缀索引
    ( 3 )添加 hash 字段+并在 hash 字段上加索引
    ( 4 )字段拆分(一个字段可拆分为两个以上)
    cookii
        2
    cookii  
       2023-07-06 12:39:15 +08:00 via Android
    才这点数据就开始慢了吗?不熟 MySQL ,对字符串的检索性能不行吗?
    xmumiffy
        3
    xmumiffy  
       2023-07-06 12:44:26 +08:00 via Android
    你是在双百分号模糊搜索?
    em70
        4
    em70  
       2023-07-06 13:00:36 +08:00
    用的 like 吗,那肯定慢啊,mysql 全文中文支持不好。搜索引擎需求适合用向量数据库
    LeegoYih
        5
    LeegoYih  
       2023-07-06 13:04:11 +08:00
    “把搜索词空格分开然后 or 检索”
    上搜索引擎吧
    8355
        6
    8355  
       2023-07-06 13:55:54 +08:00
    like or?!
    cwcc
        7
    cwcc  
       2023-07-06 14:04:12 +08:00
    我的自己系统开发原则:小数据量前端分页前端搜索,大数据量后端分页后端索引搜索,超大数据量上搜索 n 件套。
    luofan004
        8
    luofan004  
       2023-07-06 14:49:29 +08:00
    问就是 es
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   5445 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 33ms · UTC 03:30 · PVG 11:30 · LAX 19:30 · JFK 22:30
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.