首页 新闻 搜索 专区 学院

数据库选择问题

0
悬赏园豆:50 [已解决问题] 解决于 2012-09-04 09:58

我现在需要选择一个数据库。需要存储上百万(甚至更多)条数据,只对其进行增和查,就是只增不减!请问下用什么数据库比较快。

我现在用的是SQLite,现在才十几万条数据,查询的时候都已经死慢了。我的查询语句是:

select * from 表 Order by ID desc limit @pageSize offset @startIndex*@pageSize

现在点击下一页都要花费一两秒的时间,请问下各位大侠有什么好的建议或者解决方法!先谢谢各位了啊!^_^

1+1=10的主页 1+1=10 | 初学一级 | 园豆:163
提问于:2012-09-03 11:22
< >
分享
最佳答案
0

如果是客户端的话,你可以使用SQLite或者MySql5.0之类的版本,因为MySql5.0可以不要用安装,直接把文件复制过去,然后把mysqld-nt.exe设置开机启动就好啦,如果没有可以网上找下或者联系我,我用的是MySql5.0.22,但是没有测试过你这样大量的数据,不知道速度是否满足你的需求。

至于你慢估计是其他的原因,可以从你的代码优化,SQL语句的优化,数据设计的合理性方面考虑。

至于你只增不减的情况,建议你后期不要用SQLite了,该用其他的吧。如果只在一台电脑上用,那么就麻烦一次,可以装MySql,或者有钱的可以装oracle。如果在局域网用那么可以找一台公共的电脑做服务器安装数据库。

收获园豆:30
pasig10038 | 菜鸟二级 |园豆:387 | 2012-09-03 11:43

恩,以后会联机使用,到时候要换成sqlserver,不过现在这样太卡了,需要2秒才能读出一组数据!就一个简单的查询(select * from 表 Order by ID desc limit @pageSize offset @startIndex*@pageSize),没法优化啊!或许我不知道怎么优化吧!

1+1=10 | 园豆:163 (初学一级) | 2012-09-03 14:40

@陈世鹏: 建立索引看看,这样数据库占用的空间就更大了,而且是不是所有数据都要读取出来呢,如果有个别字段在这个窗口没有用到,那么可以的话就不要用select * 查询所有

钱小样 | 园豆:193 (初学一级) | 2012-09-03 14:46

@陈世鹏: 我的回答基本和上面钱小样的差不多,基本来说都是先建索引看看速度是否有所提升,首先你这个2秒是程序去远行得到的结果,还是在doc窗体下运行sqlite3 然后查询得到的2秒时间?如果程序的话,也许程序也有改进的地方

pasig10038 | 园豆:387 (菜鸟二级) | 2012-09-03 14:55

@钱小样: 我的字段总共只有5个而已,全都是要用到的!

1+1=10 | 园豆:163 (初学一级) | 2012-09-03 15:03

@pasig10038: 哦,行,我在看看啊。我这个是直接查询的这个,也没想到这儿,谢谢你的提醒,我先看一下!^_^

1+1=10 | 园豆:163 (初学一级) | 2012-09-03 15:04

@陈世鹏: 5个字段每一条的数据量应该不大

钱小样 | 园豆:193 (初学一级) | 2012-09-03 15:07

@钱小样: 是啊,不大,最长的一个字段也就十几个字符而已!

1+1=10 | 园豆:163 (初学一级) | 2012-09-03 15:45

@陈世鹏: 不客气,只要能够帮助你就OK啦

钱小样 | 园豆:193 (初学一级) | 2012-09-03 17:17
其他回答(4)
0

如果你做的是客户端程序,那么只有sqlite,你总不能逼你的用户去安装一套数据库吧?而且,sqlite上百万应该也不至于死慢,我猜你是不是一些字段存了很大段的内容,这种应当提取成文件独立存储比较好。 

如果是服务器端程序,那么上百万条数据随便选个数据库就可以了,都是小意思。缺钱的话就mysql,mongodb一类的好了。

收获园豆:5
水牛刀刀 | 园豆:6350 (大侠五级) | 2012-09-03 11:30

字段都不多,总共就5个字段,最长的一个字段里面存的数据只有十几个字符!查询一次要花两秒的时间啊!

支持(0) 反对(0) 1+1=10 | 园豆:163 (初学一级) | 2012-09-03 14:33
-3

select *    把星号换成需要的字段,哪怕全需要,这样会快点。

收获园豆:5
越天 | 园豆:26 (初学一级) | 2012-09-03 11:57

我就是全字段的,现在只是这样写方便,所以就直接用了*

支持(0) 反对(0) 1+1=10 | 园豆:163 (初学一级) | 2012-09-03 14:42

@陈世鹏: 是方便了,速度还是有影响的,我做过这个测试

支持(0) 反对(0) 越天 | 园豆:26 (初学一级) | 2012-09-03 14:44

@越天: 我是说我的项目里面就是写的字段,我贴问题的时候写的*

支持(0) 反对(0) 1+1=10 | 园豆:163 (初学一级) | 2012-09-03 14:55
0

你可以用oracle,这个还可以的,也可以用mysql,这个也是可以的

收获园豆:5
lovezll | 园豆:289 (菜鸟二级) | 2012-09-03 13:30

哦,我打算就是做联机的时候用sqlserver,但是我也没试过sqlserver对于这么多数据的查询效率如何,你觉得对于这么多数据哪种数据库的查询效率更高一点呢?

支持(0) 反对(0) 1+1=10 | 园豆:163 (初学一级) | 2012-09-03 14:45
0

mysql速度会比较快点

收获园豆:5
jason2013 | 园豆:1998 (小虾三级) | 2012-09-03 17:59

哦。谢谢啊!^_^

支持(0) 反对(0) 1+1=10 | 园豆:163 (初学一级) | 2012-09-04 09:55
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册