MySQL против SQLite на Amazon EC2 - PullRequest
       4

MySQL против SQLite на Amazon EC2

3 голосов
/ 09 ноября 2011

У меня есть программа на Java и сайт PHP, который я планирую запустить на своем экземпляре Amazon EC2 с томом EBS. Программа пишет и читает из базы данных. Сайт читает только из той же базы данных.

В AWS вы платите за количество операций ввода-вывода в секунду на том. В какой базе данных меньше всего операций ввода-вывода в секунду? Кроме того, может ли SQLite обрабатывать запросы как программы, так и веб-сайта одновременно?

Ответы [ 2 ]

8 голосов
/ 12 ноября 2011

Количество операций ввода-вывода во многом зависит от того, как настроен MySQL и как ваше приложение использует базу данных. Кэширование, размеры файла журнала, ядро ​​базы данных, транзакции и т. Д. Будут влиять на количество операций ввода-вывода. Другими словами, вероятно, невозможно предсказать заранее, хотя я предполагаю, что SQLite будет иметь больше дискового ввода-вывода просто потому, что файл базы данных должен открываться и закрываться все время, в то время как записи и чтения MySQL (в частности) могут быть кэшированы в памяти самого MySQL.

На этом сайте, Оценка запросов ввода / вывода , есть аккуратный метод для расчета вашего фактического ввода-вывода и использования его для оценки ваших затрат на EBS. Вы можете запустить свое приложение в тестовой системе при смоделированных нагрузках и использовать этот метод для измерения разницы в IO между решением MySQL и решением SQLite.

На практике это может не иметь большого значения. Стоимость составляет 0,10 доллара за миллион запросов ввода-вывода. На сайте электронной коммерции со средним трафиком и большим доступом к базе данных мы выполняли около 315 миллионов запросов ввода-вывода в месяц, или 31 доллар. Это было незначительным по сравнению с затратами на EC2, хранение и пропускную способность, которые исчислялись тысячами. Вы можете использовать калькулятор стоимости AWS , чтобы добавить оценки и рассчитать все свои расходы AWS.

Также следует помнить, что только пользователи SQLite рекомендуют использовать его для веб-сайтов с низким и средним трафиком . MySQL - лучшее решение для сайтов с высоким трафиком.

0 голосов
/ 03 марта 2013

Да. SQLite может обрабатывать запросы как программы, так и веб-сайта одновременно. SQLite использует блокировку на уровне файлов для обеспечения согласованности.

В памяти SQLite предназначен для автономных или встроенных программ.

Не использовать в памяти только SQLite:

  • при совместном использовании БД между несколькими процессами

  • когда у вас есть php-сайт, в этом случае вы не сможете использовать php fastcgi

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...