求一个简单的表设计方案

ivan_070 2013-11-27 08:42:44
brand(品牌表)
id,name......

goods(商品表)
id,brand_id,name,add_time....

like_brand(我喜欢的品牌)
uid,brand_id....

用户喜欢一个品牌后,在like_brand表中插入一条记录,现在的需求是查询我喜欢的品牌的商品列表,分页显示。goods表是200万左右,brand表3000条左右,一个用户喜欢的品牌在100左右。
如果通过
select * from goods join like_brand ....
这种方式查询的话,效率很低,查询一次需要5-10秒,请问有什么好的解决方案,可以修改表结构,新建表,目标是要保证sql执行时间不超过0.5秒。
...全文
131 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
ivan_070 2013-11-28
  • 打赏
  • 举报
回复
引用 2 楼 rucypli 的回复:
可以适当尝试做冗余数据 以减少表连接
引用 3 楼 lzd_83 的回复:
还是考虑冗余数据列,减少表间连接查询造成性能下降。
怎么做冗余能提高性能,这种需求应该很常见,有没有比较成熟的解决方案。
ivan_070 2013-11-28
  • 打赏
  • 举报
回复
引用 1 楼 ACMAIN_CHM 的回复:
表结构本身没什么问题。检查一下索引的设置。 贴出相关表的 show index from .. 和 explain select ... 以供分析。
用到索引也效果也不好,请问有什么好的解决办法。
rucypli 2013-11-27
  • 打赏
  • 举报
回复
可以适当尝试做冗余数据 以减少表连接
ACMAIN_CHM 2013-11-27
  • 打赏
  • 举报
回复
表结构本身没什么问题。检查一下索引的设置。 贴出相关表的 show index from .. 和 explain select ... 以供分析。
Rotel-刘志东 2013-11-27
  • 打赏
  • 举报
回复
还是考虑冗余数据列,减少表间连接查询造成性能下降。

56,677

社区成员

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

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