C# Sqlite插入非常慢
我试图理解为什么Sqlite插入在我们的系统中非常慢。所以我写了一个小测试项目。它所做的只是将一行写入一个表中。这个微小的插入需要150毫秒 我知道下面有一笔交易。这仍然使它太长了 我尝试添加PRAGMA synchronous=OFF和PRAGMA locking\u mode=exclusive。没有变化 以下是测试代码:C# Sqlite插入非常慢,c#,database,sqlite,C#,Database,Sqlite,我试图理解为什么Sqlite插入在我们的系统中非常慢。所以我写了一个小测试项目。它所做的只是将一行写入一个表中。这个微小的插入需要150毫秒 我知道下面有一笔交易。这仍然使它太长了 我尝试添加PRAGMA synchronous=OFF和PRAGMA locking\u mode=exclusive。没有变化 以下是测试代码: class Program { static SQLiteConnection m_dbConnection; static void Main(str
class Program
{
static SQLiteConnection m_dbConnection;
static void Main(string[] args)
{
initDB();
writeToDb();
m_dbConnection.Close();
Console.ReadKey();
}
private static void writeToDb()
{
Stopwatch sw = new Stopwatch();
string sql = "insert into highscores (name, score) values ('Me', 9001)";
SQLiteCommand command = new SQLiteCommand(sql, m_dbConnection);
sw.Restart();
command.ExecuteNonQuery();
Console.WriteLine("Writing to db took {0}ms", sw.ElapsedMilliseconds);
}
private static void initDB()
{
SQLiteConnection.CreateFile("MyDatabase.sqlite");
m_dbConnection = new SQLiteConnection("Data Source=MyDatabase.sqlite;Version=3;");
m_dbConnection.Open();
string sql = "CREATE TABLE highscores (name VARCHAR(20), score INT)";
SQLiteCommand command = new SQLiteCommand(sql, m_dbConnection);
command.ExecuteNonQuery();
}
你有没有试过写101001000。。。一行中的行?同意@Fildor,为什么您认为插入一条记录太慢?我希望您不会将收到的值乘以
N
。从1000开始,到25000,这已经非常令人印象深刻(忽略红色文本,红色文本是为了迷惑人)。关键字是transaction(如果您计划进行适当的测试)。这个问题更适合CodeReview。