2012-04-22 25 views
0

大きなファイル(100MB以上)をsqliteデータベースに保存したい。私は気づいた、それはパフォーマンスが良くない。 ファイルをローカルフォルダに保存する必要がありますか、コードを書き直す必要がありますか?SQLite:大きなファイルを格納するためのBLOB?

 Shared Sub BlobToFile(ByVal Blob As Byte(), ByVal file As String) 
     Dim MyData() As Byte = Blob 
     Dim K As Long 
     K = UBound(MyData) 
     Dim fs As New FileStream _ 
     (file, FileMode.Create, _ 
      FileAccess.Write) 
     fs.Write(MyData, 0, K) 
     fs.Close() 
     MyData = Nothing 
     K = Nothing 
    End Sub 
    Shared Function FileToBlob(ByVal Filepath As String) As Byte() 
     Dim fs As New FileStream _ 
    (Filepath, FileMode.Open, _ 
     FileAccess.Read) 
     Dim MyData(fs.Length) As Byte 
     fs.Read(MyData, 0, fs.Length) 
     fs.Close() 
     Return MyData 
    End Function 
'Then I Do this: 
Dim x As New Sqliteparameter With {.Name ="@file", .value=Filetoblob("C:\Testfile.zip"), .DbType.Binary} 
Dim y As New SqliteCommand With {.Commandtext = "INSERT INTO FILES(File) Values(@file);"} 
y.Parameters.add(x) 
y.Executenonquery() 

一般的に、このようなMSSQLサーバと同様に、それのためのサポートがない限り、データベース内の大きなファイルを格納しないことがベストプラクティスであるThxを

答えて

2

。私はちょうどデータベースのファイルの場所を格納し、ファイルシステムのいくつかの並べ替えのファイルを格納することを見てお勧めします。

関連する問題