12
返回列表 发新帖
楼主: lt-2046

[原创] Mysql 多表多列排序问题,效率很慢啊

[复制链接]
论坛徽章:
0
11#
发表于 2010-1-10 12:48 | 只看该作者
select a.* from A as a inner join B as b inner join C as c
where b.id=?
order by  a.创建日期 desc,a.创建时间 desc,c.员工姓名,c.工号

我觉得排序是用了时间,但在分页的地方,也用了很多的时间。
楼主试着去统计查询结果总记录数,看看要用多少时间?分页时要求知道总记录数。

感觉是查询语句条件太少,记录集太大的原因所以慢。

使用道具 举报

回复
论坛徽章:
0
12#
发表于 2010-1-13 19:41 | 只看该作者
A 表为实际的记录表 大概60万条记录

使用道具 举报

回复
lt-2046 该用户已被删除
13#
 楼主| 发表于 2010-1-16 23:41 | 只看该作者
确实是在排序的时候占用了很多时间

因为在多表的情况下排序没有使用到索引,所以占用了很长的时间

但是做数据冗余又担心如果关联的数据发生改变,冗余数据也要改变会造成
很多的数据update

主表大概每天会产生4万条左右的记录
随着时间冗余数据的维护成本会非常大巨大

现在采用的办法是减少排序结果集的大小来优化查询速度

使用道具 举报

回复

您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

TOP技术积分榜 社区积分榜 徽章 团队 统计 知识索引树 积分竞拍 文本模式 帮助
  ITPUB首页 | ITPUB论坛 | 数据库技术 | 企业信息化 | 开发技术 | 微软技术 | 软件工程与项目管理 | IBM技术园地 | 行业纵向讨论 | IT招聘 | IT文档
  ChinaUnix | ChinaUnix博客 | ChinaUnix论坛
CopyRight 1999-2011 itpub.net All Right Reserved. 北京盛拓优讯信息技术有限公司版权所有 联系我们 未成年人举报专区 
京ICP备16024965号-8  北京市公安局海淀分局网监中心备案编号:11010802021510 广播电视节目制作经营许可证:编号(京)字第1149号
  
快速回复 返回顶部 返回列表