欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

【解决方案】SQLite操作优化:从内存中读取,写入内存和本地

程序员文章站 2022-07-05 23:21:55
...

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。先写到这里。如果你有疑问,欢迎留言。