我现在需要选择一个数据库。需要存储上百万(甚至更多)条数据,只对其进行增和查,就是只增不减!请问下用什么数据库比较快。
我现在用的是SQLite,现在才十几万条数据,查询的时候都已经死慢了。我的查询语句是:
select * from 表 Order by ID desc limit @pageSize offset @startIndex*@pageSize
现在点击下一页都要花费一两秒的时间,请问下各位大侠有什么好的建议或者解决方法!先谢谢各位了啊!^_^
如果是客户端的话,你可以使用SQLite或者MySql5.0之类的版本,因为MySql5.0可以不要用安装,直接把文件复制过去,然后把mysqld-nt.exe设置开机启动就好啦,如果没有可以网上找下或者联系我,我用的是MySql5.0.22,但是没有测试过你这样大量的数据,不知道速度是否满足你的需求。
至于你慢估计是其他的原因,可以从你的代码优化,SQL语句的优化,数据设计的合理性方面考虑。
至于你只增不减的情况,建议你后期不要用SQLite了,该用其他的吧。如果只在一台电脑上用,那么就麻烦一次,可以装MySql,或者有钱的可以装oracle。如果在局域网用那么可以找一台公共的电脑做服务器安装数据库。
恩,以后会联机使用,到时候要换成sqlserver,不过现在这样太卡了,需要2秒才能读出一组数据!就一个简单的查询(select * from 表 Order by ID desc limit @pageSize offset @startIndex*@pageSize),没法优化啊!或许我不知道怎么优化吧!
@陈世鹏: 建立索引看看,这样数据库占用的空间就更大了,而且是不是所有数据都要读取出来呢,如果有个别字段在这个窗口没有用到,那么可以的话就不要用select * 查询所有
@陈世鹏: 我的回答基本和上面钱小样的差不多,基本来说都是先建索引看看速度是否有所提升,首先你这个2秒是程序去远行得到的结果,还是在doc窗体下运行sqlite3 然后查询得到的2秒时间?如果程序的话,也许程序也有改进的地方
@钱小样: 我的字段总共只有5个而已,全都是要用到的!
@pasig10038: 哦,行,我在看看啊。我这个是直接查询的这个,也没想到这儿,谢谢你的提醒,我先看一下!^_^
@陈世鹏: 5个字段每一条的数据量应该不大
@钱小样: 是啊,不大,最长的一个字段也就十几个字符而已!
@陈世鹏: 不客气,只要能够帮助你就OK啦
如果你做的是客户端程序,那么只有sqlite,你总不能逼你的用户去安装一套数据库吧?而且,sqlite上百万应该也不至于死慢,我猜你是不是一些字段存了很大段的内容,这种应当提取成文件独立存储比较好。
如果是服务器端程序,那么上百万条数据随便选个数据库就可以了,都是小意思。缺钱的话就mysql,mongodb一类的好了。
字段都不多,总共就5个字段,最长的一个字段里面存的数据只有十几个字符!查询一次要花两秒的时间啊!
select * 把星号换成需要的字段,哪怕全需要,这样会快点。
我就是全字段的,现在只是这样写方便,所以就直接用了*
@陈世鹏: 是方便了,速度还是有影响的,我做过这个测试
@越天: 我是说我的项目里面就是写的字段,我贴问题的时候写的*
你可以用oracle,这个还可以的,也可以用mysql,这个也是可以的
哦,我打算就是做联机的时候用sqlserver,但是我也没试过sqlserver对于这么多数据的查询效率如何,你觉得对于这么多数据哪种数据库的查询效率更高一点呢?
mysql速度会比较快点
哦。谢谢啊!^_^