2012-04-22 9 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() 

들으

답변

2

에 대한 지원은 MSSQL 서버와 같은 존재하지 않는 데이터베이스 내부에 큰 파일을 저장하지 일반적으로 가장 좋습니다. 나는 파일의 위치를 ​​데이터베이스에 저장하고 파일 시스템에 저장하는 것을 권장한다.

관련 문제