SQLite - это , а не , как BaseHTTPServer или что-то в этом роде.Это полнофункциональная встроенная база данных.Довольно быстро тоже.Его язык SQL может не обладать наибольшим количеством наворотов, но он достаточно гибок.Я не сталкивался со случаями, когда мне нужно что-то, что он не может сделать для проектов, в которых я участвовал (которые, если честно, не обычные веб-приложения).для производства, не обсуждая фактический дизайн не говорит вам много.SQLite довольно быстрый.В некоторых случаях буквально на порядков быстрее, чем, скажем, Postgres, который выступает в качестве альтернативы среди джангонавтов.Как кто-то указал, он также поддерживает много параллелизма.Вопрос в том, подпадает ли ваше приложение под «некоторые случаи» или нет.
Теперь есть один важный фактор, который необходимо учитывать.SQLite - это внутренняя база данных.Это действительно важно.Если вы используете что-то вроде gevent, вы можете столкнуться с крайними случаями, когда ваше приложение ломается.Например, попытка выполнить транзакцию, в которой у вас есть переключение контекста, может привести к ужасному разрыву транзакции.Другими словами, «параллелизм» действительно зависит от вашего приложения, потому что SQLite является частью вашего приложения.
То, что вы не можете сделать с SQLite, хотя, с точки зрения масштабирования, этоВы не можете создавать кластеры серверов SQLite, как это можно сделать с некоторыми другими механизмами баз данных, потому что они в процессе.Ваше приложение может или не должно идти на такую длину с точки зрения масштабирования, но я предполагаю, что подавляющее большинство приложений там в любом случае не (дикое предположение).
С другой стороны, находясь в-process означает, что добавление пользовательских функций и агрегатов довольно тривиально.Я не уверен, что ORM в Django делает это более трудным, чем должно быть, но вы можете придумать довольно хороший дизайн, использующий эти функции.