CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
不看会后悔的Windows XP之经验谈 简单快捷DIY实用家庭影院
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  其他数据库开发 >  MySQL/Postgresql

请教如何提高查询速度???!!!

楼主simplez(不知名)2002-12-20 17:10:14 在 其他数据库开发 / MySQL/Postgresql 提问

我有一个多表查询  
  具体语句如  
  select   a.id,a.name   from   a  
  inner   join   b   on   b.a_id=a.id  
  inner   join   c   on   c.id=b.c_id  
  where   a.name='test'   or   c.name='test'  
   
  表里的数据比较多(20万条记录),我把a.name和c.name设成了index,查询一次要几秒钟,请问大家有没有办法提高查询速度,修改查询语句,或是修改表的结构(增加冗余也可以考虑),还是只能升级硬件??谢谢了。 问题点数:50、回复次数:6Top

1 楼bombshell(水中鱼)回复于 2002-12-20 19:27:38 得分 25

用EXPLAIN测试  
  例如:   EXPLAIN   select   a.id,a.name   from   a  
  inner   join   b   on   b.a_id=a.id  
  inner   join   c   on   c.id=b.c_id  
  where   a.name='test'   or   c.name='test'  
  察看返回信息  
  Top

2 楼simplez(不知名)回复于 2002-12-21 12:21:37 得分 0

然后呢?没返回什么信息啊,还有什么办法吗?谢谢了。Top

3 楼bombshell(水中鱼)回复于 2002-12-21 13:56:17 得分 15

应该返回好多信息,包括表的索引、将要使用的连接类型,以及在每个表中扫描的行数估计等。然后根据这些信息来优化你的查询语句。  
  遵循这样的原则:  
  1。比较具有相同类型的列。  
  2。比较中应尽量使索引列独立。  
  3。在like模式的起始处不要使用通配符  
        例如:where   name   like   "%string%"  
                  优化为:where   name   like   "string%"  
  4。帮助优化程序更好的评估索引的有效性  
        可用isamchk   或   myisamchk   的--analyze选项给优化程序提供更好的信息,以便分析键值的分布。  
  5。利用EXPLAIN检验优化程序操作。  
        检查用于查询中的索引是否能很快的排除行  
   
  本人卓见,仅共参考!Top

4 楼simplez(不知名)回复于 2002-12-21 16:06:44 得分 0

速度提高得很有限,我想要是想大幅提高速度是不是需要建一个专门存放关键字的表。Top

5 楼bombshell(水中鱼)回复于 2002-12-21 19:38:19 得分 5

那就重新设计你的表,把大表拆分,是每个表结构更合理。做到没有重复纪录你就成功了2/3了,然后优化你的查询。Top

6 楼xuguoxin(原来如北)回复于 2002-12-23 17:23:30 得分 5

增加数据冗余吧,把一些经常要查询的数据集中在一二个表中,合理的表结构是以牺牲性能为代价的当然你已经有20万条记录,改结构可能不是好办法。还是在硬件和索引考虑吧Top

相关问题

  • 如何提高查询速度?
  • 如何提高db的查询速度
  • 如何才能提高查询速度?
  • 关于如何提高查询速度的问题
  • 如何提高多表查询的速度!(UP有分)
  • asp中如何提高查询速度,在线等待,
  • 查询如何提高速度,在线等待,谢谢
  • 如何提高sql查询的速度,急!
  • 数据库查询,如何在提高速度
  • access数据库查询,如何在提高速度

关键词

  • 查询
  • 优化
  • 语句
  • 结构
  • 数据
  • 信息
  • 表
  • 索引
  • 速度
  • 提高

得分解答快速导航

  • 帖主:simplez
  • bombshell
  • bombshell
  • bombshell
  • xuguoxin

相关链接

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

广告也精彩

反馈

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