Я сравниваю скорости дисковых и оперативных баз данных.Я пытаюсь вставить приблизительно 8 МБ данных в базу данных sqlite3 со следующей строкой подключения:
<configuration>
<connectionStrings>
<add name="Server" connectionString="Data Source=db.db3;Version=3;" providerName="System.Data.SQLite" />
</connectionStrings>
</configuration>
Она вставляет мои данные примерно через 4 секунды.
Когда я меняю соединениестрока к следующему:
<configuration>
<connectionStrings>
<add name="Server" connectionString="Data Source=:memory:;Version=3;" providerName="System.Data.SQLite" />
</connectionStrings>
</configuration>
Мои данные вставляются примерно через 0,5 секунды.
Но когда я изменяю настройки следующим образом (примечание Cache Size=16777216
)
<configuration>
<connectionStrings>
<add name="Server" connectionString="Data Source=db.db3;Version=3;Cache Size=16777216;" providerName="System.Data.SQLite" />
</connectionStrings>
</configuration>
Это снова 4 секунды, и результат не зависит от объема кэша.В моем понимании размер кэша в два раза больше объема данных должен приводить к тому, что мои данные помещаются в память.А миграция диска должна происходить, когда кеша больше не осталось ...
Как сделать sqlite более отзывчивым?