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

2023-07-06 09:37:32 +08:00
 azev

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

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

1195 次点击
所在节点    问与答
8 条回复
nkidgm
2023-07-06 09:43:45 +08:00
对于长字符串,可用如下方式建立索引:
( 1 )前缀索引
( 2 )字符串倒叙+前缀索引
( 3 )添加 hash 字段+并在 hash 字段上加索引
( 4 )字段拆分(一个字段可拆分为两个以上)
cookii
2023-07-06 12:39:15 +08:00
才这点数据就开始慢了吗?不熟 MySQL ,对字符串的检索性能不行吗?
xmumiffy
2023-07-06 12:44:26 +08:00
你是在双百分号模糊搜索?
em70
2023-07-06 13:00:36 +08:00
用的 like 吗,那肯定慢啊,mysql 全文中文支持不好。搜索引擎需求适合用向量数据库
LeegoYih
2023-07-06 13:04:11 +08:00
“把搜索词空格分开然后 or 检索”
上搜索引擎吧
8355
2023-07-06 13:55:54 +08:00
like or?!
cwcc
2023-07-06 14:04:12 +08:00
我的自己系统开发原则:小数据量前端分页前端搜索,大数据量后端分页后端索引搜索,超大数据量上搜索 n 件套。
luofan004
2023-07-06 14:49:29 +08:00
问就是 es

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/954473

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX