关于数据库查询的疑问

欣儿 发布于 2013/04/24 21:48
阅读 291
收藏 2

比如两个表的查询

一个是新闻的list表,另一个是新闻的user表,暂时讨论这两个

我要做的是查询的是新闻的列表,既有list表,又有user里的数据

而我的问题是,用两个表的连表查询好,还是先查询出list表的数据后,再用查询的数据用foreach一次,再查出list表对应的user表的数据。

如果是这样的情况来比较,在数据少的情况下,哪个更好?

而如果是在大数据的情况下,比如像门户网站的新闻数据那样多的情况下,又是怎样?

具体的项目时,有没有可能进行很好的比较

加载中
0
amonxu
amonxu

数据量少就没讲究了, db处理和后台处理都一样。

数据量大肯定是在后台用缓存处理。


amonxu
amonxu
回复 @欣儿 : 具体区别还得看实际运用。
欣儿
欣儿
那用连表查询和分开用foreach查询,速度上有没有区别?
0
qbless
qbless

1. 小数据量可以用表关联,但1->N的关联性能是比较低下。

2. 大数量

->两次查询

->数据冗余,定时触发批量更新(空间换时间)

->生成纯静态文件,html htm shtml shtm

qbless
qbless
回复 @布尔道长 : 大数据量,一对多表关联,很消耗数据库性能。
子矜
子矜
是不是连接查询不能用缓存 分开查后 能够利用缓存优势么
qbless
qbless
回复 @布尔道长 : 大数据站点,不可能不用缓存层
子矜
子矜
哦 我是说比如Hibernate,Entity Framework这样的框架都有缓存机制吧 大数据还要进行两次查询,比如有10万条,查询一次后还要做10万次查询么? 这样子效率会高么?
欣儿
欣儿
回复 @布尔道长 : 使用后台缓存?是什么意思?可以把几个表的数据缓存起来,再查询的吗?
下一页
0
张jason
张jason
inner join||left join
0
欣儿
欣儿

引用来自“张jason”的答案

inner join||left join
在一个项目里的数据连表查询也这样吗?会不会维护麻烦?比如更改一个表的结构后,要改的模型很多
0
张jason
张jason
你改结构跟这个有什么关系,这个链接方式只是取两表关联的数据进行链接的
0
欣儿
欣儿

引用来自“张jason”的答案

你改结构跟这个有什么关系,这个链接方式只是取两表关联的数据进行链接的
额,怎么没有关系咯。开发的时候是连表查询的,然后要进行后面的改进,有些表的结构要增加和减去啊,然后,我想知道这样连表后有没有什么问题。


PS:查询都是把要用的数据查出来的,没有用*查的
0
张jason
张jason
你什么都别想,这个两个表就用inner join链接,至于你说后面增加和减少,都没有关系,只要别把两个表的关系删除就好了
0
张jason
张jason
加我扣扣:542800202
红薯
红薯
在 osc 上讨论,还能给其他人分享过程,多好
0
LucEsape
LucEsape
数据少 没什么区别
返回顶部
顶部