Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/performance/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
亚马逊EC2上的MySQL与SQLite_Mysql_Performance_Sqlite_Amazon Ec2_Amazon Web Services - Fatal编程技术网

亚马逊EC2上的MySQL与SQLite

亚马逊EC2上的MySQL与SQLite,mysql,performance,sqlite,amazon-ec2,amazon-web-services,Mysql,Performance,Sqlite,Amazon Ec2,Amazon Web Services,我有一个Java程序和PHP网站,我计划用EBS卷在我的AmazonEC2实例上运行。程序写入和读取数据库。该网站仅从同一数据库读取数据 在AWS上,您为卷的IOPS(每秒I/O请求)量付费。哪个数据库的IOPS最小?此外,SQLite能否同时处理来自程序和网站的查询?IO的数量将在很大程度上取决于您如何配置MySQL以及应用程序如何使用数据库。缓存、日志文件大小、数据库引擎、事务等都会影响IO的执行量。换句话说,可能无法提前预测,尽管我猜SQLite会有更多的磁盘IO,因为数据库文件必须一直打

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


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

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

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

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


您还应该记住,SQLite只支持用户。MySQL是高流量站点的更好解决方案。

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

内存中的SQLite适用于独立或嵌入式程序

请勿仅在内存中使用SQLite:

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

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


数据库有多大?如果您可以将整个内容缓存在web(只读)端的内存中,那么您几乎可以消除该端的I/O。您可以在服务器代码中或使用内存中的SQLite数据库来实现这一点。该数据库大约为1-5GB。如果它在Java应用程序的内存中,Web服务器将如何访问它?Java应用程序将针对磁盘上的数据库工作。web应用程序会将数据库缓存在内存中,或者定期更新,或者在需要在内存中更新某些内容时从Java应用程序接收指令。可能在1GB下工作,但可能不会在5GB下工作。截至2016年,sqlite处理容量非常好。对于高流量站点,我们确实会遇到很多锁错误,并且必须使用WAL(提前写入日志
pragma journal\u mode=WAL
)以及每日cron来检查点数据库(以防止WAL文件失控)