我正在建立一个自我跟踪系统来记录例如手机的加速度计,键入的键,鼠标活动等等。

那么我应该使用哪个数据库?到目前为止,我的研究建议使用SQLite3,因为数据库不会很大-我的计算每天会提供大约100万条新(小)记录,每天大约15MB。

某些软件使用已经将其数据存储在SQLite3数据库中;我必须编写很多特殊情况的代码才能使用两种不同类型的数据库,还是相同的代码就足够了?

评论

就我个人而言,我会使用MySQL,但这完全是由于我对其他RDBM选项的熟悉。
我猜要求是SQL类型的数据库吗?

@NickWilde:MySQL比大多数RDBMS仍然受限制,并且速度不再好得多。但是对于单用户而言,SQLite比任何服务器野兽都要好。

SQLite3适用于大数据。我经常将它与数十GB的数据库一起使用。它非常快,但是提交速度很慢,因此,当您执行许多插入操作时,绝对有必要将它们包装在事务中。

#1 楼

我建议您继续使用SQLite3:大多数需要嵌入式数据库进行本地/客户端存储的应用程序都使用SQLite3,并且每分钟20次写入对我来说听起来并不多,而且从您所描述的写入内容来看,更是如此。可能只是插入,只要您使用SQLite 3.7.11或更高版本,就可以轻松进行批处理:

 INSERT INTO 'tablename'
      SELECT 'data1' AS 'column1', 'data2' AS 'column2'
UNION SELECT 'data3', 'data4'
UNION SELECT 'data5', 'data6'
UNION SELECT 'data7', 'data8'


评论


不需要这种复杂的SQL。只需将插入内容放入交易中即可。 SQLite在大多数操作中速度非常快,但是提交速度很慢。正确使用事务,它比大多数替代方案要快,没有它们,它就无法使用。

– Jan Hudec
2014年6月6日14:40