Sqlite或MySql吗?如何决定?[关闭]


94

有什么好的经验法则可以决定要使用哪两个?

并且,如果您接管Sqlite数据库,并且系统有望“变大”,那么如何决定是坚持使用还是转用MySql?


1
考虑一下FirebirdEmbedded,它是两者的强大结合。
Stefan Steiger,

1
投票结束范围太广。可能的重复项已被删除:stackoverflow.com/questions/3630/sqlite-vs-mysql
Ciro Santilli郝海东冠状病六四事件法轮功

10
现在已经很广泛了,但是在发布时,这种问题是可以接受的,或者至少是可以容忍的。我希望不要像可能重复一样删除该问题,以便其他人仍然可以阅读讨论内容和建议。
Mawg说恢复Monica 2015年

5
可惜的是,那些具有较高影响力和知名度的问题(请参阅下面的向上投票数)已被该站点的“监视器”关闭。这使得整个监视过程和监视选择相当成问题。
francogrex

2
多年来,网站的标准,价值和目标一直在变化。“以观点为基础”已不再可以接受。如果我今天想问这个问题,我会在softwarerecs.stackexchange.com而不是在这里问,并列出我对数据库的要求并获得建议。我理解为什么我的问题被关闭了,但是当我曾经有一个图书标签时,我仍然怀旧一段时间,标题中的“ best”一词并不意味着立即关闭:-/ YMMV
Mawg说恢复Monica

Answers:


103

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

如果你需要

  • 网络访问-例如从另一台计算机访问;
  • 任何真正的并发度-例如,如果您认为您可能希望一次运行多个查询,或者运行具有大量选择和少量更新的工作负载,并希望它们平稳运行等。
  • 大量的内存使用情况,例如将1Tb数据库的某些部分缓存在32G内存中。

您需要使用mysql或其他基于服务器的RDBMS。

请注意,MySQL不是唯一的选择,还有许多其他选择可能对新应用程序更好(例如pgSQL)。

Sqlite是一款非常非常出色的软件,但从未宣称要执行RDBMS服务器所做的任何这些事情。这是一个小型库,可在本地文件上运行SQL(使用锁定功能以确保多个进程不会破坏文件)。它真的经过了很好的测试,我非常喜欢。

另外,如果您不能自己正确选择此选项,则可能需要雇用团队中可以聘用的人。


因此,基本上sqllite是ms访问文件的替代方法。
dvdmn

2
这三点正是理查德·希普(Richard Hipp)所说的:youtu.be/Jib2AmRb_rk?
t=1693

为简单起见,即使对于使用MySql数据库的联网应用程序,我也始终只有一个软件,这是唯一被允许访问数据库的用户。
Mawg说恢复Monica

57

sqlite团队发表了一篇文章,解释了什么时候使用sqlite很好读。基本上,当您有大量写入并发或需要扩展到TB级数据时,您要避免使用sqlite。在许多其他情况下,sqlite是“传统”数据库(例如MySQL)的令人惊讶的良好替代品。


11

就并发性而言,开箱即用的SQLite并非真正具有完整功能。如果您有成百上千的Web请求命中同一个SQLite数据库,您将遇到麻烦。

您绝对应该使用MySQL或PostgreSQL。

如果是用于单人项目,则SQLite会更容易设置。


为简单起见,即使对于使用MySql数据库的联网应用程序,我始终只有一个软件,它是唯一被允许访问数据库的用户,但是,尤其是对于Sqlite,这是显而易见的。
Mawg说恢复Monica's

10

我对以前的出色答复只占几分钱。该网站www.sqlite.org在sqlite数据库上工作。当作者(Richard Hipp)回答类似问题时,这是链接


1
感谢您提供的链接,同一位作者继续使用他在Athlon 1600上测试过的自己的工作台。1GB RAM。5400RPM IDE磁盘。红帽7.3。他总结说:“我现在认为SQLite适合用作每天点击量高达一百万的网站上的主数据库。”
Rutrus
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.