用于大型数据集的sqlite或mysql

exl*_*exl 6 mysql sqlite r

我正在处理大型数据集(数百万条记录,有时是数百万条记录),并希望使用与R链接良好的数据库程序.我正在尝试在mysql和sqlite之间做出决定.数据是静态的,但我需要做很多查询.

在这个指向sqlite帮助的链接中,它指出:

"默认页面大小为1024字节,SQLite数据库的大小限制为2 TB(241字节).即使它可以处理更大的数据库,SQLite也会将整个数据库存储在一个磁盘文件中,并且许多文件系统限制了最大值如果你正在考虑这么大的数据库,你最好考虑使用一个客户端/服务器数据库引擎,它将内容分布在多个磁盘文件中,也可能跨多个卷."

我不确定这意味着什么.当我尝试使用mysql和sqlite时,似乎mysql速度更快,但我还没有构建非常严格的速度测试.我想知道,由于数据集的大小,mysql对我来说是否比sqlite更好.上面的描述似乎表明可能是这种情况,但我的数据不在2TB附近.

有一个关于stackoverflow讨论触及了这个并引用了相同的sqlite信息页面,但它并没有完全解决这个问题.

我非常感谢从文件系统中理解这个最大文件大小限制的任何见解,以及它如何影响索引表和运行查询的速度.这可以帮助我决定使用哪个数据库进行分析.

Sub*_*ied 6

SQLite数据库引擎将整个数据库存储到单个文件中.对于非常大的文件,这可能不是非常有效(SQLite的限制是2TB,正如您在帮助中找到的那样).此外,SQLite一次仅限于一个用户.如果您的应用程序是基于Web的,或者最终可能是多线程的(如AsyncTask在Android上),那么mysql可能就是这样.

就个人而言,既然你已经完成了测试并且mysql速度更快,我只需要使用mysql.它将在未来更具可扩展性,并允许您做更多.