最近在做PDA嵌入式方面的系统开发,操作系统是Windows CE。因为开发涉及到数据的存储问题,当初在想既然操作系统是微软的,数据库也用微软自带的SqlCe数据库吧,性能应该没啥问题。但是我们对系统性能要求比较高,在优化的过程当中发现数据的存储和检索要消耗几十毫秒到上百毫秒。大家都知道PDA的硬件配置不算很高,各种资源都很是宝贵,所以只能要求我们必须在系统架构和程序方面既节约系统资源又高效。就在此时,我们想到了另外一个比较流行的嵌入式数据库系统SQLite,我们想知道的是到底是SQLite效率高还是SqlCe效率更高呢?想知道具体结果只能通过性能测试了。我模拟了三种场景:1.批量插入100条数据;2.从100条数据中检索按条件一条数据;3.从100条数据中按条件检索10条数据;
首先看SqlCe的情况:
1.批量插入100条数据,耗时:18769 ms
2.从100条数据中检索按条件一条数据,耗时:150 ms
3.从100条数据中按条件检索10条数据,耗时:169 ms
再来看看SQLite的表现:
1.批量插入100条数据,耗时:4334 ms
2.从100条数据中检索按条件一条数据,耗时:12 ms
3. 从100条数据中按条件检索10条数据,耗时:20ms
从测试结果可以看出,性能差距很大:
SqlCe SQLite
-------------------------------------------------------------------------------------------------------
18769 ms 4334 ms (批量插入100条数据)
150 ms 12 ms (从100条数据中检索按条件一条数据)
169 ms 20 ms (从100条数据中按条件检索10条数据)