MySQL vs SQLite on Amazon EC2



我有一个Java程序和PHP网站,我计划在我的Amazon EC2实例上运行一个EBS卷。该程序向数据库写入数据并从数据库读取数据。该网站只从同一个数据库读取。

在AWS上,您为卷支付IOPS(每秒I/O请求数)的数量。哪个数据库的IOPS最少?此外,SQLite可以同时处理来自程序和网站的查询吗?

IO的数量将在很大程度上取决于您如何配置MySQL以及您的应用程序如何使用数据库。缓存、日志文件大小、数据库引擎、事务等都会影响你做多少IO。换句话说,这可能是不可能提前预测,虽然我猜SQLite将有更多的磁盘IO只是因为数据库文件必须打开和关闭所有的时间,而MySQL写和读(特别是)可以由MySQL本身缓存在内存中。

这个站点,估算I/O请求,有一个简洁的方法来计算实际IO并使用它来估算EBS成本。您可以在模拟负载的测试系统上运行应用程序,并使用此技术来测量MySQL解决方案和SQLite解决方案之间的IO差异。

在实践中,这可能并不重要。成本是每一百万IO请求0.10美元。在一个有大量数据库访问的中等流量的电子商务网站上,我们每个月处理大约3.15亿IO请求,即31美元。与花费数千美元的EC2、存储和带宽成本相比,这是微不足道的。您可以使用AWS成本计算器来估算并计算您的所有AWS成本。

你还应该记住,SQLite人员只建议你在低到中等流量的网站上使用它。

MySQL是高流量站点的更好解决方案。

是SQLite可以同时处理来自程序和网站的查询。SQLite使用文件级锁来确保一致性。

在内存中,SQLite用于独立或嵌入式程序。

不要只在内存中使用SQLite:

  • 当你在多个进程之间共享数据库

  • 当你有一个基于php的网站在这种情况下,你将无法利用php fastcgi

最新更新