- 主题:请教数据库索引问题
场景是这样的
我需要对用户动态打标签,比如美女,风景,二次元等,一条用户动态可能会有多个标签
我现在是这样做的,把标签组合成一个字符串,存在动态表里的一个字段,然后对这个字段加索引,搜索的时候直接匹配字符串就行
标签的目的是搜索或推荐用的,比如一搜美女,那带有美女标签的都会搜到,或者动态详情里推荐有美女标签的动态
不知道有没有其他方案,谢谢了
发自「今日水木 on iPhone XS」
--
FROM 58.247.68.*
字符串索引一般只能用在头部开始的匹配,'美女%' 这种
像 '%美女%' 这种就基本是全表扫描了
可以用数据库自带的全文索引
或者直接上 ElasticSearch
【 在 hxf (work hard !!!) 的大作中提到: 】
: 场景是这样的
: 我需要对用户动态打标签,比如美女,风景,二次元等,一条用户动态可能会有多个标签
: 我现在是这样做的,把标签组合成一个字符串,存在动态表里的一个字段,然后对这个字段加索引,搜索的时候直接匹配字符串就行
: ...................
--
FROM 14.145.21.*
谢谢,只会最基础的mysql呀,
我这样做你看行不行
标签其实是用户发表动态时自己添加的,标签用一个单独的表存,对标签字段加索引,动态表和标签表关联,搜索时直接搜标签表进行全等匹配,不用like,这个搜索效率应该还行吧
【 在 keygen 的大作中提到: 】
:
: 字符串索引一般只能用在头部开始的匹配,'美女%' 这种
: 像 '%美女%' 这种就基本是全表扫描了
: 可以用数据库自带的全文索引
: 或者直接上 ElasticSearch
:
: --
: 经过艰苦的努力摆脱了低级趣味之后,小明终于抑郁了。
:
:
发自「今日水木 on iPhone XS」
--
FROM 58.247.68.*
数据量不是太大应该没什么问题
【 在 hxf (work hard !!!) 的大作中提到: 】
: 谢谢,只会最基础的mysql呀,
: 我这样做你看行不行
: 标签其实是用户发表动态时自己添加的,标签用一个单独的表存,对标签字段加索引,动态表和标签表关联,搜索时直接搜标签表进行全等匹配,不用like,这个搜索效率应该还行吧
: ...................
--
FROM 14.145.21.*