Sqlite还是MySql?如何决定?

Sqlite还是MySql?如何决定?,mysql,database,sqlite,Mysql,Database,Sqlite,关于如何决定使用这两种方法中的哪一种,有什么好的经验法则吗 而且,如果你接管了一个Sqlite数据库,而系统预计会“变得更大”,那么如何决定是继续使用它还是转移到MySql?它们的功能集完全不同。Sqlite是一个嵌入式数据库,它没有网络功能(除非您添加它们)。所以你不能在网络上使用它 如果你需要 网络访问-例如从另一台机器访问 任何真正程度的并发性—例如,如果您认为您可能希望同时运行多个查询,或者运行具有大量选择和少量更新的工作负载,并且希望它们能够顺利运行,等等 大量内存使用,例如,在32

关于如何决定使用这两种方法中的哪一种,有什么好的经验法则吗


而且,如果你接管了一个Sqlite数据库,而系统预计会“变得更大”,那么如何决定是继续使用它还是转移到MySql?

它们的功能集完全不同。Sqlite是一个嵌入式数据库,它没有网络功能(除非您添加它们)。所以你不能在网络上使用它

如果你需要

  • 网络访问-例如从另一台机器访问
  • 任何真正程度的并发性—例如,如果您认为您可能希望同时运行多个查询,或者运行具有大量选择和少量更新的工作负载,并且希望它们能够顺利运行,等等
  • 大量内存使用,例如,在32G内存中缓冲1Tb数据库的一部分
您需要使用mysql或其他基于服务器的RDBMS

请注意,MySQL并不是唯一的选择,还有很多其他的可能更适合新应用程序(例如pgSQL)

Sqlite是一个非常非常好的软件,但它从来没有声称做过RDBMS服务器所做的任何事情。它是一个在本地文件上运行SQL的小型库(使用锁定以确保多个进程不会将文件搞砸)。它经过了很好的测试,我非常喜欢它


此外,如果您自己无法正确选择,您可能需要在您的团队中雇佣一位能够做到这一点的人。

关于并发性,SQLite开箱即用并不是真正的功能齐全。如果有数百个web请求访问同一个SQLite数据库,您将遇到麻烦

你肯定应该使用MySQL或PostgreSQL


如果是针对单人项目,SQLite将更容易设置。

我对以前的优秀回复只花了几分钱。
网站www.sqlite.org在sqlite数据库上工作。以下是作者(Richard Hipp)回答类似问题的时间。

sqlite团队发表了一篇文章,解释了这一点。基本上,当您有大量的写并发性或需要扩展到TB的数据时,您希望避免使用sqlite。在许多其他情况下,sqlite是MySQL等“传统”数据库的一个出人意料的好替代品。

想想Firebirdembed,它是这两种数据库的一个非常强大的混合体。投票决定关闭的范围太广。可能的重复被删除了:它现在是广泛的,但是,当发布这种问题是可以接受的,或者至少是可以容忍的。我希望这个问题不要像可能的重复一样被删除,这样其他人仍然可以阅读讨论和建议。很遗憾,那些具有高影响力和可见性的问题(看看下面的得票数)被本网站的“监督者”关闭了。这使得整个监测过程和监测人员的选择非常可疑。多年来,该地点的标准、价值观和目标都发生了变化。“主要基于意见”已不再被接受。如果我今天想问这个问题,我会继续问,而不是在这里,然后列出我对数据库的要求并收到建议。我理解为什么我的问题被关闭了,但我仍然怀念我们曾经有一个标签的时代,标题中的“最佳”一词并不意味着立即关闭:-/YMMVSo基本上sqllite是ms access文件的替代品。这三点正是Richard Hipp所说的:为了简单起见,我总是有一个单一的软件,它是唯一允许访问数据库的用户,即使是使用MySql数据库的网络应用程序也是如此。谢谢你的链接,同一位作者继续在Athlon 1600上测试。1GB内存。5400RPM IDE磁盘。红帽7.3。他总结道:«我现在认为SQLite适合用作每天点击率高达100万的网站的主数据库。»为了简单起见,我总是有一个单一的软件,它是唯一允许访问数据库的用户,即使是使用MySql数据库的网络应用程序,但显然,特别是对于Sqlite。