MySQL의 구성 방법과 응용 프로그램에서 데이터베이스를 사용하는 방법에 따라 IO 양은 크게 달라집니다. 캐싱, 로그 파일 크기, 데이터베이스 엔진, 트랜잭션 등은 모두 IO의 양에 영향을 미칩니다. 다른 말로하면 SQLite가 디스크 IO를 더 많이 차지할 것이라고 추측 할지라도 미리 예측할 수는 없습니다. MySQL이 쓰기 및 읽기 (특히) 중에 캐싱 될 수있는 동안 데이터베이스 파일을 항상 열고 닫아야하기 때문입니다. MySQL 자체에 의해 메모리에 저장됩니다.
이 사이트 Estimating I/O requests에는 실제 IO를 계산하고이를 사용하여 EBS 비용을 산정하는 간단한 방법이 있습니다. 시뮬레이션 된로드하에 테스트 시스템에서 애플리케이션을 실행하고이 기법을 사용하여 MySQL 솔루션과 SQLite 솔루션 간의 IO 차이를 측정 할 수 있습니다.
실제로는 별 문제가되지 않을 수도 있습니다. 비용은 $ IO 요청 당 $ 0.10입니다. 데이터베이스 액세스가 많은 중형 트래픽 전자 상거래 사이트에서 우리는 월 315 만 건의 IO 요청 (31 달러)을 수행했습니다. 이는 수천 명에 달하는 EC2, 스토리지 및 대역폭 비용에 비해 무시할 수있는 수준이었습니다. AWS cost calculator을 사용하여 견적을 연결하고 모든 AWS 비용을 계산할 수 있습니다.
또한 SQLite 사용자는 recommend that you use it for low to medium traffic websites이라는 명심해야합니다. MySQL은 트래픽이 많은 사이트에 더 나은 솔루션입니다.
데이터베이스의 크기는 어느 정도입니까? 웹 (읽기 전용) 측면에서 모든 것을 캐시 할 수 있다면 그면에서 거의 I/O를 제거 할 수 있습니다. 서버 코드에서 또는 메모리 내 SQLite 데이터베이스를 사용하여이를 수행 할 수 있습니다. –
데이터베이스의 크기는 약 1-5GB입니다. Java 애플리케이션의 메모리에 있다면 웹 서버는 어떻게 액세스합니까? – Arjan
Java 응용 프로그램은 디스크의 데이터베이스에 대해 작동합니다. 웹 애플리케이션은 주기적으로 업데이트하거나 메모리에서 업데이트해야 할 것이있을 때 자바 애플리케이션의 지시를 받아 메모리에 캐시합니다. 아마도 1GB에서 작동하지만 아마 5GB에서는 작동하지 않을 것입니다. –