用like查询慢,数据库应该怎么设计?
一个信息发布系统,新闻表字段很多,news_id是主键,有索引,栏目号是外键,但是有些新闻会被其它栏目引用,有个字段记录了引用的栏目号,用符号隔开,查询一个栏目的内容时,则:
where (module_id=12 or modules like concat('%','12,','%'))
除此之外,每条新闻可以指定可以浏览的角色,这些角色也是以','分隔放在一个字段中的,也需要以like方式查询。
目前,新闻表近20万条记录,慢得不得了,请问这种情况我应该怎么设计?或者怎么做优化?谢谢!