用like查询慢,数据库应该怎么设计?

berg369 2013-04-09 10:36:40
一个信息发布系统,新闻表字段很多,news_id是主键,有索引,栏目号是外键,但是有些新闻会被其它栏目引用,有个字段记录了引用的栏目号,用符号隔开,查询一个栏目的内容时,则:
where (module_id=12 or modules like concat('%','12,','%'))

除此之外,每条新闻可以指定可以浏览的角色,这些角色也是以','分隔放在一个字段中的,也需要以like方式查询。

目前,新闻表近20万条记录,慢得不得了,请问这种情况我应该怎么设计?或者怎么做优化?谢谢!
...全文
114 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
debiten 2013-04-10
  • 打赏
  • 举报
回复
感觉用like效率会低下,同上换全文索引
ACMAIN_CHM 2013-04-09
  • 打赏
  • 举报
回复
LIKE '%x%' 这种查询无法利用普通索引优化,MYSQL只会进行全表扫描。 一般可以使用全文索引。
rucypli 2013-04-09
  • 打赏
  • 举报
回复
访问量数据量大的论坛肯定不能用like 会把整个网站拖垮的 搜索这块要单独做全文搜索的
Rotel-刘志东 2013-04-09
  • 打赏
  • 举报
回复
是不表设计有问题,是查询语句的效率低下造成。 or like效率都很低的,用全文索引代替。

56,678

社区成员

发帖
与我相关
我的任务
社区描述
MySQL相关内容讨论专区
社区管理员
  • MySQL
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧