我想设置一个 teampeak 3 服务器。我可以选择 SQLite 和 MySQL 作为数据库。好吧,我通常倾向于“不要在生产中使用 SQLite”。但另一方面,它是一个 Teamspeak 服务器。好吧,让我谷歌一下......我发现了这个:
- Speed
SQLite3 比 MySQL 数据库快得多。这是因为文件数据库总是比unix套接字更快。当我请求编辑频道时,在 MySQL 数据库 (127.0.0.1) 上花费了大约 0.5-1 秒,在 SQLite 3 上几乎立即花费了 (0.1 秒)。 [...]
http://forum.teamspeak.com/showthread.php/77126-SQLite-vs-MySQL-Answer-is-here http://forum.teamspeak.com/showthread.php/77126-SQLite-vs-MySQL-Answer-is-here
我不想引发 SQLite 与 MySQL 的争论。我只想问:他的论点有效吗?我无法想象他说的是真的。但不幸的是我自己不够专业来回答这个问题。
也许 TeamSpeak 开发人员的 SQLite 和 MySQL 之间的数据库架构存在一些重大差异,这解释了速度上的巨大差异(我无法想象这一点)。
首次访问时间在 SQLite 中会显得更快
SQLite 的访问时间在第一次出现时会显得更快,但这是在线用户数量较少的情况下。 SQLite使用非常简单的访问算法,速度快但不处理并发。
随着数据库开始增长,同时访问量将开始受到影响。服务器处理多个请求的方式完全不同,并且更加复杂并且针对高并发进行了优化。例如,如果正在进行更新,SQLite 将锁定整个表,并对订单进行排队。
RDBMS 做了很多额外的工作,使它们更具可扩展性
例如,MySQL,即使是单个用户也会创建一个访问队列,部分锁定表而不是每次只允许单个用户执行,以及其他相当复杂的任务,以确保数据库仍然可供任何其他同时访问访问。
这将使单个用户的连接速度变慢,但是当将来有 100 个用户在线时,就会得到回报,在这种情况下,简单的
“锁定整个表并每次执行单个查询”
SQLite 的过程会占用服务器。
SQLite 是为了简单性和独立的数据库应用程序而设计的。
如果您期望一次在数据库上有 10 个并发访问写入,SQLite 可能会表现良好,但您不希望有 100 个用户的应用程序不断地使用 SQLite 向数据库写入和读取数据。它不是为这种情况设计的,并且会浪费资源。
考虑到您的 TeamSpeak 场景,您可能会同意 SQLite,即使对于某些业务也可以,某些网站需要只读数据库,除非添加新内容。
对于这种用途,SQLite 是一种廉价、易于实现、独立、完美的解决方案,可以完成这项工作。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)