CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
山寨机中的战斗机! 程序优化工程师到底对IT界有没有贡献
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  其他数据库开发 >  MySQL/Postgresql

对数据库进行多表联合查询,是不是有很大的性能影响?谢谢!

楼主wdydt163(东东)2003-08-04 16:47:33 在 其他数据库开发 / MySQL/Postgresql 提问

对数据库进行多表联合查询,是不是有很大的性能影响?谢谢! 问题点数:100、回复次数:12Top

1 楼shuixin13(犬犬(心帆))回复于 2003-08-04 17:53:04 得分 20

呵呵,联合查询会对性能有点影响,  
   
  但是如果表太大了也对性能有影响呀,  
   
  事情没有绝对,  
   
  只能看你的需求了Top

2 楼chaz(石仔)回复于 2003-08-04 18:17:14 得分 10

多表联合查询肯定会影响性能咯。Top

3 楼lxf_1976(小木)回复于 2003-08-05 10:03:49 得分 10

是啊,看你的需求了,达到同一个目标,多表联合查询相对单表查询性能不一定差!比较查询的性能,比较两种查询的目标集合、结果集合等可以大致推测性能比!  
   
  再说了,为什么要建立多表,就是为了数据组织管理方便、合理,这对整个数据库应用来说,效率会更好一些,所以就算某个方面的查询性能差一点,也是合理、合算的!总的来说,就是看需求而定了!  
   
  浅见,:-)Top

4 楼myblessu(继续混着,到被人赶走为止)回复于 2003-08-05 10:33:55 得分 0

那是肯定的了,在同个数据库里,查一个表肯定比多表联合查询要快.Top

5 楼bluemeteor(挂月||Becoder)回复于 2003-08-05 11:14:14 得分 10

一直在考虑这个问题  
   
  在相同的索引建立和SQL优化的前提下  
   
  决定SQL的运行性能的,是from中表的多少?还是返回结果集中字段的数量和类型所决定  
   
  当然最关键的应该是where中的条件和表本身的索引设置,总体来说,多表连接出现性能倒退的可能性大些Top

6 楼lxf_1976(小木)回复于 2003-08-05 12:03:45 得分 0

:)  
   
  举个简单的例子:  
  table   1:  
  id1             id2  
  1                   1  
  1                   2  
  2                   3  
  2                   4  
  3                   5  
  ........  
  10000条(假设每个id1值对应两个id2值,总共5000个id1值)  
   
  table   2:  
  id2               name  
  1                   aa  
  2                   bb  
  3                   cc  
  4                   dd  
  5                   ee  
  10000条  
   
  如果把两个表合并,就有100,000,000条记录,假设要查询id1为4000的所有name,这个性能怎么比,我没试过,只是猜测这种情况下两个表比一个表好些!Top

7 楼lxf_1976(小木)回复于 2003-08-05 12:05:24 得分 0

sorry,   数据例子举例错了!脸红~~~~~~~  
   
  不过总存在这样的情况,两个表的数据如果合并,数据量会几何增长!Top

8 楼wdydt163(东东)回复于 2003-08-05 16:32:06 得分 0

非常感谢大家,这就是说联合查询不会引起很大的性能下降了?Top

9 楼lxf_1976(小木)回复于 2003-08-05 16:45:30 得分 0

也不是这么绝对!  
   
  性能不是SQL语句本身就能决定的!不能仅仅靠SQL来提高性能!  
   
  如果只是比较相同需求下的单表查询和多表联合查询的性能,直接用数据说话!Top

10 楼wdydt163(东东)回复于 2003-08-05 17:16:12 得分 0

不现在是必须用多表联合查询,我是想知道是用多表联合查询还是先从各表中取出数据再用这些数据到另个两个表中取数据,这样做哪个会好些?谢谢!Top

11 楼lxf_1976(小木)回复于 2003-08-05 17:39:39 得分 50

我没做过类似测试,如果对两种方式有所犹豫,我会直接用数据测试,用测试结果来证明那种方式更合适!  
   
  不过猜测在这种情况下联合查询的性能应该不会比分开查询差!mysql服务端本身对任何一个查询都会或多或少的进行一些优化!  
   
  如果某个目的能做联合查询,在SQL语句优化的前提下,分开查询和联合查询的最大目标集合、最终结果集合应该是一样的!这个时候,服务器端对联合查询的查询条件的优化可能会对性能有所提高!  
   
  所以,一般情况下我的建议是,能做联合查询的就使用联合查询(至少应用层编写中能减少代码,:-)   )!Top

12 楼wdydt163(东东)回复于 2003-08-06 09:06:37 得分 0

谢谢大家,心里有底了:)Top

相关问题

  • 数据库分表查询的问题
  • 查询两个数据库中的表
  • 通过ASP查询SQL数据库数据库,和表名及数量
  • 数据库查询!
  • 数据库查询
  • 数据库查询~~~~
  • 数据库查询~~~~
  • 数据库查询~~~~
  • 数据库查询
  • 数据库查询

关键词

  • 查询
  • 性能
  • 数据库
  • 数据
  • 优化
  • 需求
  • 测试
  • sql
  • 表
  • 联合查询

得分解答快速导航

  • 帖主:wdydt163
  • shuixin13
  • chaz
  • lxf_1976
  • bluemeteor
  • lxf_1976

相关链接

  • CSDN Blog
  • 技术文档
  • 代码下载
  • 第二书店
  • 读书频道

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
GongshangLogo