c# - SQLite花费太长时间无法获取图片

标签 c# sqlite image

我有一些大的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/

相关文章:

c# - DateTime 列表查找当前日期之前的最后一个日期

css - 将 HTML 图像定位在较大的 DIV 中

image - 比较纹理与 OpenCV 和 Gabor 过滤器

android - com.android.camera.action.CROP 调整裁剪矩形的大小

c# - CollectionViewSource 不会对属性更改进行重新排序

c# - 无法在 sting c# 中编写脚本

android - SQLiteAssetHelper 插入/删除/更新

c# - 获取列的最大值

android - 使用like的cursorloader选择查询

c# - QLPreviewController 和 UIWebView 不显示填充的 PDF