SQLite как производственная база данных для сайта низкого трафика?

  • z означает (un) z̲ip.
  • x означает извлечение файлов из архива.
  • v означает печатать имена файлов v̲erbosely.
  • f означает, что следующий аргумент является именем файла.
49
задан T Zengerink 5 November 2012 в 05:43
поделиться

6 ответов

SQLite не поддерживает какой-либо параллелизм, поэтому у вас могут возникнуть проблемы с его запуском на рабочем веб-сайте. Если вы ищете «более легкую» базу данных, возможно, подумайте о том, чтобы попробовать современное хранилище объектных документов, такое как CouchDB.

Во что бы то ни стало, продолжайте разрабатывать SQLite, и вы, вероятно, сможете использовать его на начальном этапе. Однако если вы обнаружите, что у вашего приложения больше пользователей, вы захотите перейти на Postgres или MySQL.

Автор SQLite обращается к этому на веб-сайте :

SQLite работает отлично подходит как ядро ​​базы данных для большинства веб-сайтов с низким и средним трафиком (то есть большинства веб-сайтов). Объем веб-трафика, который может обрабатывать SQLite, зависит от того, насколько активно веб-сайт использует свою базу данных. Вообще говоря, любой сайт, который получает менее 100 000 обращений в день, должен нормально работать с SQLite. Цифра 100 000 посещений в день является консервативной оценкой, а не жесткой верхней границей. Было продемонстрировано, что SQLite работает с 10-кратным объемом трафика.

Веб-сайт SQLite ( https://www.sqlite.org/ ), конечно, использует сам SQLite, и на момент написания этой статьи (2015), он обрабатывает от 400 до 500 тысяч HTTP-запросов в день, около 15-20% из которых являются динамическими страницами, касающимися базы данных. Динамическое содержимое использует около 200 операторов SQL на каждую веб-страницу. Эта установка работает на одной виртуальной машине, которая разделяет физический сервер с 23 другими, и все же большую часть времени сохраняет среднюю нагрузку ниже 0,1.

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


Вот ветка с еще несколькими независимыми комментариями по использованию SQLite для производственного веб-приложения. Похоже, что он использовался с некоторыми неоднозначными результатами.


Edit (2014) :

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

Чарльз Лейфер написал сообщение в блоге о функции SQLite WAL (запись с упреждающим ведением журнала) и некоторые хорошо продуманные мнения о подходящих вариантах использования.

s ветка с еще несколькими независимыми комментариями об использовании SQLite для производственного веб-приложения. Похоже, что он использовался с некоторыми неоднозначными результатами.


Edit (2014) :

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

Чарльз Лейфер написал сообщение в блоге о функции SQLite WAL (запись с упреждающим ведением журнала) и некоторые хорошо продуманные мнения о подходящих вариантах использования.

s ветка с еще несколькими независимыми комментариями об использовании SQLite для производственного веб-приложения. Похоже, что он использовался с некоторыми неоднозначными результатами.


Edit (2014) :

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

Чарльз Лейфер написал сообщение в блоге о функции SQLite WAL (запись с упреждающим ведением журнала) и некоторые хорошо продуманные мнения о подходящих вариантах использования.

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

Чарльз Лейфер написал сообщение в блоге о функции SQLite WAL (запись с упреждающим ведением журнала) и некоторые хорошо продуманные мнения о подходящих вариантах использования.

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

Чарльз Лейфер написал сообщение в блоге о функции SQLite WAL (запись с упреждающим ведением журнала) и некоторые хорошо продуманные мнения о подходящих вариантах использования.

55
ответ дан 7 November 2019 в 11:48
поделиться

Мы часто используем SQLite для внутренних баз данных; Каталог сотрудников, наш календарь событий и другие службы интрасети работают в облегченных базах данных. Было бы большим излишеством запускать эти приложения в том масштабе, который мы делаем в «настоящей» базе данных, такой как mySQL. Это особенно верно, если учесть, что они работают вместе с 4 другими виртуальными машинами на одном компьютере среднего уровня.

В какой-то момент у нас был внешний сайт, который месяцами работал на базе данных sqlite только с одним требуется однократная перезагрузка. Очевидно, это был очень низкий трафик, но он отлично справлялся со своей задачей.

6
ответ дан 7 November 2019 в 11:48
поделиться

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

1
ответ дан 7 November 2019 в 11:48
поделиться

Зависит от использования сайта. Если большую часть времени вы просто читаете данные, вы можете использовать что угодно для БД и кэшировать данные в приложении для достижения хорошей производительности.

0
ответ дан 7 November 2019 в 11:48
поделиться

Я использую его на веб-сервере с очень низким трафиком (это геномная база данных), и у меня нет никаких проблем. Но есть только операторы SELECT без записи в БД .

0
ответ дан 7 November 2019 в 11:48
поделиться

Люди говорят о проблемах параллелизма, но в sqlite есть способ кэшировать входящие запросы и заставлять их ждать некоторое время. Тайм-аут не истекает сразу.

Я читал кое-что о настройке тайм-аута по умолчанию, начинающейся с нуля, что означает, что время ожидания истекает немедленно, и это ерунда. Может, люди не меняли эту настройку?

1
ответ дан 7 November 2019 в 11:48
поделиться
Другие вопросы по тегам:

Похожие вопросы: