12
返回列表 发新帖
楼主: 饼干lr

sql 优化

[复制链接]
招聘 : Java研发
论坛徽章:
14
ITPUB9周年纪念徽章
日期:2010-10-08 09:34:02马上有钱
日期:2014-02-18 16:43:092014年新春福章
日期:2014-02-18 16:43:09双黄蛋
日期:2013-03-06 09:26:372013年新春福章
日期:2013-02-25 14:51:24ITPUB 11周年纪念徽章
日期:2012-10-09 18:13:33咸鸭蛋
日期:2012-03-05 19:13:102012新春纪念徽章
日期:2012-01-04 11:55:42ITPUB十周年纪念徽章
日期:2011-11-01 16:25:22双黄蛋
日期:2011-08-18 16:23:16
11#
 楼主| 发表于 2012-9-29 15:03 | 只看该作者
longxibendi 发表于 2012-9-29 14:50
这个是没用的,虽然建立了联合索引,但第一个字段是范围查询,第二个字段的索引,是用不到的。(这种查询都 ...

我看了执行计划,是的,没用到复合索引。现在我再重新建个devid,time的索引来查查看计划,因为数据量比较大,可能花费点时间。
谢谢你了

使用道具 举报

回复
论坛徽章:
2
蜘蛛蛋
日期:2012-03-28 13:19:16奥运会纪念徽章:曲棍球
日期:2012-08-24 13:56:21
12#
发表于 2012-9-29 15:08 | 只看该作者
饼干lr 发表于 2012-9-29 14:53
谢谢
我这里还需要把2个月之前历史数据删除,那我分区先按时间range分区,然后按devid hash分区,这样应 ...

首先你要考虑一件事情..分区键必须是主键或主键包含...所以你这样既要range 又要 hash的话...主键会比较庞大...如果还有其他的索引,.你的数据文件也会很大...

单做hash的话...直接根据你的devid 定位到这些数据..然后 where 通过索引精确找到数据...

你自己可以酌情考虑下.... 估计你这个应该是个统计库..其实range+hash也未尝不可...
跟你的查许也有关...假如你的时间范围特别大... 先range并不是特别理想了....

使用道具 举报

回复
招聘 : Java研发
论坛徽章:
14
ITPUB9周年纪念徽章
日期:2010-10-08 09:34:02马上有钱
日期:2014-02-18 16:43:092014年新春福章
日期:2014-02-18 16:43:09双黄蛋
日期:2013-03-06 09:26:372013年新春福章
日期:2013-02-25 14:51:24ITPUB 11周年纪念徽章
日期:2012-10-09 18:13:33咸鸭蛋
日期:2012-03-05 19:13:102012新春纪念徽章
日期:2012-01-04 11:55:42ITPUB十周年纪念徽章
日期:2011-11-01 16:25:22双黄蛋
日期:2011-08-18 16:23:16
13#
 楼主| 发表于 2012-9-29 15:50 | 只看该作者
longxibendi 发表于 2012-9-29 14:50
这个是没用的,虽然建立了联合索引,但第一个字段是范围查询,第二个字段的索引,是用不到的。(这种查询都 ...

索引建好了,查询果然快了很多。看索引是走的是 (devid,time)。这个索引,经过业务部门测试,时间满足他们需求了。。谢谢你。。

使用道具 举报

回复

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

本版积分规则 发表回复

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