【解決方案】SQLite操作優化:從內存中讀取,寫入內存和本地

SQLite是我非常喜歡的一個小型數據庫。如果你真把它當SQL Server、Oracle來使用的話,那簡直是災難,讀寫效率帶來的死鎖問題夠你受的。

不過,如果把整個數據庫加載到內存中呢?哈哈,那簡直是爽翻了。不過,寫入怎麼解決呢?
你的程序不知道什麼時候會退出,一旦退出,數據還未保存的話,哭吧。。。。

其實,向數據庫中寫入數據的頻率是非常低的,而讀取數據的頻率卻很高。

且看我的更新方法:
1、把數據庫加載到內存
2、每次需要讀取數據的時候,直接從內存中讀取。
3、每次寫入數據的時候,先寫內存,然後把那條SQL語句再磁盤上的數據庫上執行一下。
4、如果向內存數據庫寫入都失敗,怎麼辦?很簡單,那就用不着更新磁盤上的數據庫啦。

有時候,執行的並不是一條簡單的SQL語句,而是加了參數的語句,那麼這裏還需要對參數進行處理。處理的代碼如下:

public static void SQLiteFileDatabseExecute(SQLiteCommand command)
{
    SQLiteConnection sQLiteConnection = new SQLiteConnection(SQLiteConnectionString);
    SQLiteCommand sQLiteCommand = new SQLiteCommand("", sQLiteConnection);
    try
    {
        sQLiteConnection.Open();
        sQLiteCommand.CommandText = command.CommandText;
        foreach (SQLiteParameter sQLiteParameter in command.Parameters)
        {
            sQLiteCommand.Parameters.Add(sQLiteParameter);
        }
        sQLiteCommand.ExecuteNonQuery();
    }
    catch (Exception ex)
    {
        Console.WriteLine(ex.ToString());
    }
    finally
    {
        sQLiteConnection.Close();
    }
}

讀,從內存中加載的數據庫中讀取
寫,先寫內存數據庫,然後在磁盤上的數據庫中執行同樣的SQL語句。

OK。先寫到這裏。如果你有疑問,歡迎留言。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章