SQLite или MySQL для сайта, предназначенного для чтения? - PullRequest
1 голос
/ 12 ноября 2010

Целесообразно ли использовать SQLite в качестве базы данных для веб-сайта, например, с 300 000 уникальных посетителей в месяц?

Запись в базу данных будет довольно ограниченной - регистрация пользователей, вход в систему, добавление комментариев и т. Д. Подавляющее большинство пользователей будут использовать запросы на получение контента на основе первичного ключа в URL-адресе.Я хотел бы знать, может ли SQLite работать в качестве бэкенда веб-сайта и не окажется ли он значительно медленнее, чем MySQL.

Я видел этот ТАК вопрос и другие, но на самом деле они не совпадают и, похоже, теперь они могут быть устаревшими.http://www.sqlite.org/whentouse.html предполагает, что все будет хорошо, но они могут быть немного предвзятыми!

Ответы [ 3 ]

1 голос
/ 12 ноября 2010

Я думаю, с тобой все будет в порядке. Sqlite может отлично поддерживать многопоточность, и, поскольку вы в основном читаете из нее, проблем не должно быть. Кроме того, если вы пишете в него, он также полностью поддерживает транзакции. Вы должны помнить, что это всего лишь один файл и никакой службы - поэтому, если вы собираетесь кластеризовать его, вам не повезет. Может быть, вам стоит проверить, какие именно проблемы у вас с MySQL, и решить их.

1 голос
/ 12 ноября 2010

SQLite - очень крутой продукт - и с горизонтом HTML5 для любого веб-разработчика будет хорошей идеей познакомиться с ним. Однако вы должны иметь в виду, что sqlite плохо масштабируется. Если вам когда-либо понадобится обмениваться данными между несколькими веб-серверами, будет очень трудно использовать sqlite в качестве подложки данных.

Однако, чтобы упростить разработку, вы можете взглянуть на PDO / dbx_ в PHP, который обеспечивает уровень абстракции (т. Е. Один и тот же код взаимодействует со всеми видами баз данных), однако существуют некоторые тонкие различия между тем, как разные системы реализуют такие вещи, как транзакции - и вариации в SQL - если вы пойдете по этому пути, я бы порекомендовал поддерживать свой собственный уровень абстракции между вызовами PHP PDO / DBX и вашим приложением - подумайте о хранимых процедурах, реализованных в PHP.

300 000 уникальных посетителей в месяц?

aaaarrrgghhhh! питомец ненавидит Хотя вам нужно подумать о том, сколько денег будет делать ваш сайт, чтобы планировать бюджет, это не является полезным показателем для планирования загрузки. На самом деле вы хотите посмотреть на ожидаемую частоту просмотров / страниц.

0 голосов
/ 12 ноября 2010

sqlite очень быстрый, но его становится трудно использовать, когда вам нужно кластеризовать. Однако практически все базы данных сложны, когда вам нужно кластеризовать. Если вы ориентированы на чтение, не должно иметь большого значения, какой вы используете. Просто убедитесь, что вы используете memcached.

...