首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >1~*关系的MySQL优化

问1~*关系的MySQL优化
EN

Stack Overflow用户
提问于 2014-01-25 05:36:00
回答 1查看 33关注 0票数 0

好吧,我一直在努力想办法解决这个问题,但还没能得出结论。我很想从你们那里得到一些结果,一些做更多测试的技巧,或者更多的参考资料。

情况很简单。这里有一张主要的图片表。可能是cat_pictures。有一个cat_pictures_comments的次要表。一些智能开发人员确保cat_pictures具有ID_PICTURE的自动递增主键,并且注释也存储在ID_PICTURE索引中。

我们的应用程序有一个页面,它想要显示所有的图片和所有的图片评论。

我们是不是

  1. 只需使用INNER JOIN cat_pictures和cat_pictures_comments(并确保正确排序)
  2. 获取所有的cat_pictures,然后循环遍历每一张,并为每一张图片获取cat_pictures_comments

答:如果应用程序是PHP怎么办?

如果cat_pictures有输入ID、图片文件以及猫基因组的另外20285个字段,该怎么办?此外,cat_pictures还与每只猫的主人的心理医生( 1-1的关系)进行了INNER JOIN。(基本上,与我们的小猫咪评论表相比,主表上有更多的数据。)

谢谢大家。

EN

回答 1

Stack Overflow用户

发布于 2014-01-25 06:35:44

我想你的问题是,你是否加入到评论中,然后有一个类似的查询

备选案文1

代码语言:javascript
复制
select (all pic columns), (all comment columns) from pics inner join comments; 

Vs.选项2

代码语言:javascript
复制
Select * from pics; then loop and select * from comments were pictureId = @currentId;

Vs.选项3

代码语言:javascript
复制
Select * from pics order by picId; select * from comments order by picId;

在选项1中,对于为该图片发布的每一条注释,都会复制图片表的每一列。如果对每幅图片都有许多注释,并且图片表非常宽,那么从数据库中提取两个单独的数据集可能会更好。

在备选方案2中,如果有很多图片,那么往返数据库的次数就太多了。

基于缺乏完整的需求,我建议选择3。将图片表的结果和注释作为两个单独的数据集,然后在php页面中:循环遍历每个图片并显示pic信息,然后嵌套循环,从已经从Server中提取的本地注释数据集中获取当前图片的注释。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21347099

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档