首页 新闻 会员 周边

Sql数据库问题

0
悬赏园豆:40 [已解决问题] 解决于 2013-06-20 09:22

数据库数据很多很大(大约有300多万条),弄得网站挺慢的。有什么好的方法改善不?

问题补充:

谢谢所有给回复的朋友

wode301的主页 wode301 | 初学一级 | 园豆:5
提问于:2013-06-18 11:44
< >
分享
最佳答案
0

1、看实际用途,如果都是常用字段,那么就横向分表。按照一定的规则分为几个表;如果不常用的字段很多,那么就竖向分表,将不常用的字段提供到新表,主键关联。

2、对于查询,我相信不是每次都需要用到全部数据的。那么可以将实际用到的数据(计算后,按条件分类后),在空闲时间查询到新创建的表中,以后取数据从新表取,这样也就达到减少数据量的问题。

3、合理利用缓存,将查询数据缓存起来,有不少的orm都支持数据缓存,如(iBatis)。

收获园豆:17
幻天芒 | 高人七级 |园豆:37175 | 2013-06-18 13:26

学习了

wode301 | 园豆:5 (初学一级) | 2013-06-18 13:45
其他回答(7)
0

分表,建索引

收获园豆:2
哇~怪兽 | 园豆:622 (小虾三级) | 2013-06-18 11:52
0

300万就很慢了.?

300万都是什么数据.?

是不是你的数据结构有问题.?

加索引只能治标不治本.优化数据才是王道.

收获园豆:5
只会造轮子 | 园豆:2274 (老鸟四级) | 2013-06-18 12:11

优化过,是不是还得继续优化啊?有没有什么办法比如好像是把数据库分开还是什么?

支持(0) 反对(0) wode301 | 园豆:5 (初学一级) | 2013-06-18 13:03

300w,很慢的情况是很多的。不一定是结构的问题,有些变态的查询就是慢...

支持(0) 反对(0) 幻天芒 | 园豆:37175 (高人七级) | 2013-06-18 13:25

@幻天芒: 哦

支持(0) 反对(0) wode301 | 园豆:5 (初学一级) | 2013-06-18 13:43

把你的sql贴出来看下.

还有你的页面打开一次,访问几次数据库.?

支持(0) 反对(0) 只会造轮子 | 园豆:2274 (老鸟四级) | 2013-06-18 14:42

@发粪图墙: 这两天有事,没上来看,这个网站我还没完全接手过来,稍后再贴哦

支持(0) 反对(0) wode301 | 园豆:5 (初学一级) | 2013-06-20 09:15
0

最最实用的还是分类归档。其它并不是说没有作用,是考虑实际情况。

收获园豆:6
xinsiyus | 园豆:153 (初学一级) | 2013-06-18 13:36

谢谢,能说的具体点吗?不是很懂呢

支持(0) 反对(0) wode301 | 园豆:5 (初学一级) | 2013-06-18 13:46

@wode301: 就是把用得少的历史数据给弄到另一个数据库中去。你表里的数据应该有时间轴的吧,既然是时间累积下来的。移来移去麻烦的话就可以建个历史表,把去年前的数据都移过去。理论上在软件设计的时候都会考虑到这个问题的,人家运行八年的系统还在维护中。一年一归案的。

支持(0) 反对(0) xinsiyus | 园豆:153 (初学一级) | 2013-06-18 15:47
0

300万就慢了,不应该啊,我觉得你的sql语句一定还可以优化。我们的表有2000条,都没觉得慢!

收获园豆:2
jerry-Tom | 园豆:4077 (老鸟四级) | 2013-06-18 15:12
0

贴点代码 ,看看你的SQL语句是如何获取数据的,分页读取和显示数据时必须的。

收获园豆:3
二十三号同学 | 园豆:974 (小虾三级) | 2013-06-18 15:35

这两天有事没来得及上来看,现在没法贴代码,有机会的哦

支持(0) 反对(0) wode301 | 园豆:5 (初学一级) | 2013-06-20 09:16
0

索引/缓存/页面转静态

收获园豆:2
BarneyZhang | 园豆:8 (初学一级) | 2013-06-18 15:43
0

数据库版本,主机系统版本和WEBserver类型说一下吧

收获园豆:3
Alexy Young | 园豆:205 (菜鸟二级) | 2013-06-19 17:48

我刚知道数据库是SqlServer2005的,别的不是很清楚,刚来的

支持(0) 反对(0) wode301 | 园豆:5 (初学一级) | 2013-06-20 09:17
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册