Sqlite 与MYSQL搜索测试报告 有图有真相 Sqlite并没有Mysql强
由于最近要制作一个大概10W数据的搜索引擎,一直以来都是使用mysql的,在网上看到帖子,都说sqlite的速度可以超过mysql2到10倍,有点不敢相信,而且sqlite支持内存数据(我一直以为内存数据可以随时链接,其实只有在该进程才有效)。
于是,突击学习了sqlite的php编程,发现网上的很多错误,也进行了相关的检索测试。总结了以下的经验,供分享:
测试数据量为1.1W左右,结构为title info,等主要搜索对象是对title或info中存在的关键词进行检索。
1,sqlite如果需要insert数据,还是需要开启事务管理,这点网上介绍比较多,1W多数据插入竟然用了将近10分钟。
2,sqlite的数据大小比mysql的要大很多,因为没有压缩的结果,所以占用的磁盘空间也更大。

3,检索数据,对数据中info中检索关键词如"中国",以下是搜索结果:

很明显,sqlite对于复合数据的检索比mysql差,这个与网上讲述的很有出入,所以还是觉得放弃sqlite。
4,首次连接sqlite占用的时间还是比较长的,所以最好使用popen来进行连接,链接后进程一直占用该链接,效率比较高。
所以,我认为sqlite如果针对一些数据存储的应用还是比较实用的,接下来我将进行针对数据库存储与磁盘存储的研究。
还有一点建议,如果你使用的是linux系统,而且可以写入到/proe内存目录,那么可以将sqlite存入到该目录中进行检索,那样与内存数据库性质是一致的,肯定可以大大的增强其速度。这点有待测试。
综上所述,我认为sqlite还是很不错的单文件数据库,因为其简单,效率不错,但是做大的应用还有待考证。
网上的那些内容都是抄来抄去的,一个简单的程序来测试运行速度,而不再生产环境中测试只是纸上谈兵。




