Всегда ли чтение SQLite происходит с диска? - PullRequest
5 голосов
/ 10 октября 2011

У меня есть приложение Pylons, использующее SQLAlchemy с SQLite в качестве бэкэнда. Я хотел бы знать, будет ли каждая операция чтения, идущая в SQLite, всегда приводить к чтению с жесткого диска (которое очень медленное по сравнению с ОЗУ) или уже задействованы некоторые механизмы кэширования.

  • поддерживает ли SQLite подмножество базы данных в оперативной памяти для более быстрого доступа?
  • Может ли ОС (Linux) делать это автоматически?
  • Какое ускорение можно ожидать при использовании производственной базы данных (MySQL или PostgreSQL) вместо SQLite?

Ответы [ 2 ]

3 голосов
/ 10 октября 2011
  1. Да, SQLite имеет собственный кэш памяти.Проверьте PRAGMA cache_size например.Кроме того, если вы ищете ускорения, отметьте PRAGMA temp_store.Существует также API для реализации вашего собственного кэша.

  2. База данных SQLite - это просто файл для ОС.Ничего «автоматически» не делается для этого.Чтобы обеспечить кэширование, существует sqlite.h определений и параметров прагмы времени выполнения.

  3. Зависит от того, что во многих случаях возникает замедление.

0 голосов
/ 10 октября 2011

Какое ускорение можно ожидать при использовании рабочей базы данных (MySQL или postgres) вместо sqlite?

Используете ли вы sqlite в среде рабочего сервера? Вы, вероятно, не должны быть:

С Подходящее использование для Sqlite :

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

SQLite не предназначен для и никогда не предназначался для хорошего масштабирования; SQLite торгует удобством для производительности; если производительность является проблемой, вы должны рассмотреть другую СУБД

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