1、看实际用途,如果都是常用字段,那么就横向分表。按照一定的规则分为几个表;如果不常用的字段很多,那么就竖向分表,将不常用的字段提供到新表,主键关联。
2、对于查询,我相信不是每次都需要用到全部数据的。那么可以将实际用到的数据(计算后,按条件分类后),在空闲时间查询到新创建的表中,以后取数据从新表取,这样也就达到减少数据量的问题。
3、合理利用缓存,将查询数据缓存起来,有不少的orm都支持数据缓存,如(iBatis)。
学习了
分表,建索引
300万就很慢了.?
300万都是什么数据.?
是不是你的数据结构有问题.?
加索引只能治标不治本.优化数据才是王道.
优化过,是不是还得继续优化啊?有没有什么办法比如好像是把数据库分开还是什么?
300w,很慢的情况是很多的。不一定是结构的问题,有些变态的查询就是慢...
@幻天芒: 哦
把你的sql贴出来看下.
还有你的页面打开一次,访问几次数据库.?
@发粪图墙: 这两天有事,没上来看,这个网站我还没完全接手过来,稍后再贴哦
最最实用的还是分类归档。其它并不是说没有作用,是考虑实际情况。
谢谢,能说的具体点吗?不是很懂呢
@wode301: 就是把用得少的历史数据给弄到另一个数据库中去。你表里的数据应该有时间轴的吧,既然是时间累积下来的。移来移去麻烦的话就可以建个历史表,把去年前的数据都移过去。理论上在软件设计的时候都会考虑到这个问题的,人家运行八年的系统还在维护中。一年一归案的。
300万就慢了,不应该啊,我觉得你的sql语句一定还可以优化。我们的表有2000条,都没觉得慢!
贴点代码 ,看看你的SQL语句是如何获取数据的,分页读取和显示数据时必须的。
这两天有事没来得及上来看,现在没法贴代码,有机会的哦
索引/缓存/页面转静态
数据库版本,主机系统版本和WEBserver类型说一下吧
我刚知道数据库是SqlServer2005的,别的不是很清楚,刚来的