我有一些大的DB文件(每个文件约50GB),其中包含客户文档的图像(每个图片大小约为300KB)。
我正在尝试将图片加载到查看器中,但是时间太长,例如1分钟。特别是对于第一个查询/记录。
string query = "select pic from tbl_pictures where record_id = '" + SearchID + "'";
SQLiteConnection con = new SQLiteConnection(conString);
SQLiteCommand cmd = new SQLiteCommand(query, con);
con.Open();
try
{
IDataReader rdr = cmd.ExecuteReader();
try
{
ListOfImagesBytes.Clear();
while (rdr.Read())
{
byte[] a = (System.Byte[])rdr[0];
ListOfImagesBytes.Add((System.Byte[])rdr[0]);
}
}
catch (Exception exc) { MessageBox.Show(exc.Message); }
}
catch (Exception ex) { MessageBox.Show(ex.Message); }
con.Close();
这是我创建数据库文件时的属性:
PRAGMA auto_vacuum = 1;
PRAGMA main.page_size = 4096;
PRAGMA main.locking_mode=NORMAL;
PRAGMA main.synchronous=NORMAL;
PRAGMA main.journal_mode=WAL;
PRAGMA main.cache_size=5000;
PRAGMA main.temp_store=Memory;
最佳答案
您可能只是在访问表深处的零索引记录来提供帮助。也许添加索引?
CREATE INDEX record_id_index ON tbl_pictures(record_id);
关于c# - SQLite花费太长时间无法获取图片,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17835747/