我有一个Java程序和PHP网站,计划在我的Amazon EC2实例上运行,并使用EBS卷。该程序从数据库读取和写入数据。该网站仅从相同的数据库中读取数据。
在AWS上,您需要支付IOPS(每秒IO请求)的数量来访问卷。哪种数据库具有最少的IOPS?此外,SQLite能够同时处理程序和网站的查询吗?
在AWS上,您需要支付IOPS(每秒IO请求)的数量来访问卷。哪种数据库具有最少的IOPS?此外,SQLite能够同时处理程序和网站的查询吗?
IO的数量将在很大程度上取决于您如何配置MySQL以及应用程序如何使用数据库。缓存、日志文件大小、数据库引擎、事务等都会影响您所做的IO量。换句话说,可能无法事先预测,尽管我猜SQLite会有更多的磁盘IO,因为数据库文件必须一直被打开和关闭,而MySQL本身可以通过写入和读取(特别是)在内存中缓存。
这个网站“估计IO请求”有一个聪明的方法来计算您的实际IO并用它来估计您的EBS成本。您可以在模拟负载下在测试系统上运行您的应用程序,并使用这种技术来测量MySQL解决方案和SQLite解决方案之间的IO差异。
实际上,这可能并不重要。成本为每百万次IO请求0.10美元。在一个中等流量的电子商务网站上,我们每个月大约进行了3.15亿次IO请求,或者31美元。与EC2、存储和带宽费用相比,这是微不足道的,这些费用达到数千美元。您可以使用AWS成本计算器插入估计值并计算您的所有AWS成本。
您还应牢记,SQLite仅建议您将其用于低到中等流量的网站。对于高流量网站,MySQL是更好的解决方案。
pragma journal_mode = WAL
)以及每日cron来检查数据库(以防止运行失控的WAL文件)。 - Max是的,SQLite可以同时处理程序和网站的查询。SQLite使用文件级锁定来确保一致性。
内存中的SQLite适用于独立或嵌入式程序。
不要仅使用内存中的SQLite:
当您在多个进程之间共享数据库时
当您有一个基于PHP的网站时,在这种情况下,您将无法利用PHP FastCGI