mksqlite  2.5
A MATLAB interface to SQLite
Compression (BLOB)
sqlite_test_blosc
function sqlite_test_blosc

    clear all
    close all
    clc
    dummy = mksqlite('version mex');
    fprintf( '\n\n' );

    database = 'demo.db';

    % delete existing on-disc database if any
    if exist( database, 'file' )
        delete( database );
    end

    % create a new database file
    mksqlite( 'open', database );

    % create table
    mksqlite( ['CREATE TABLE demo '   , ...
               ' ( id PRIMARY KEY, '  , ...
               '   type, '            , ...  % indicating which compressor was used
               '   data, '            , ...  % packed random data
               '   pack_ratio, '      , ...  % compression ratio
               '   pack_time, '       , ...  % compression time
               '   unpack_time '     , ...  % decompression time
               ' )'] );

    compressors = { 'lz4', 'lz4hc', 'blosclz' };  % lossless compressors

    typed_blob_mode   = 2; % Use typed BLOBs with compression feature
    compression_level = 9; % level, range from 0=off to 9=max

    % You're not limited in mixing compressed and uncompressed data in the data base!
    mksqlite( 'typedBLOBs', typed_blob_mode ); % switch typed BLOBs mode
    mksqlite( 'compression_check', 1 ); % set check for compressed data on

    % generating recordset
    fprintf( 'Please wait, while generating 500 entries...\n' );
    for n = 1:500

        data = cumsum( randn( 10000, 1) );  % some random data

        % set randomly one compression
        type = randi(size(compressors)-1) + 1;
        compressor = compressors{type};
        mksqlite( 'compression', compressor, compression_level );

        % insert random data
        mksqlite( ['INSERT INTO demo ', ...
                   ' (id, type, data) ', ...
                   ' VALUES (?,?,?)'], ...
                   n, type, data );

        % note that BDC...() SQL user functions depend on current
        % compression settings!
        mksqlite( ['UPDATE demo SET ', ...
                   '  pack_time   = BDCPackTime(data), '   , ...
                   '  unpack_time = BDCUnpackTime(data), ' , ...
                   '  pack_ratio  = BDCRatio(data) '   , ...
                   ' WHERE id = ?'], n );

        % Display progress state
        if n > 1
            fprintf( '%c', ones(3,1)*8 );
        end

        fprintf( '%03d', n );
    end

    fprintf( '\n\n\n' );


    % display some statistics about blosc compressors
    for i = 1:3
        fprintf( 'Statistics for %s with max. compression rate:\n', compressors{i} );
        mksqlite( ['SELECT ', ...
                   '  MIN(pack_time),   AVG(pack_time),   MAX(pack_time), ', ...
                   '  MIN(unpack_time), AVG(unpack_time), MAX(unpack_time), ', ...
                   '  MIN(pack_ratio),  AVG(pack_ratio),  MAX(pack_ratio) ', ...
                   '  FROM demo WHERE type = ?'], i )
    end

    %  close database
    mksqlite( 0, 'close' );
mksqlite Version 2.5 build: 133, ein MATLAB Interface zu SQLite
(c) 2008-2017 by Martin Kortmann <mail@kortmann.de>
                 Andreas Martin  <andimartin@users.sourceforge.net>
basierend auf SQLite Version 3.16.2 - http://www.sqlite.org
mksqlite verwendet:
 - DEELX perl kompatible regex engine Version 1.3 (Sswater@gmail.com)
 - BLOSC/LZ4 1.3.0-rc3.dev zur Datenkompression (Francesc Alted / Yann Collett) 
 - MD5 Message-Digest Algorithm (RFC 1321) Implementierung von Alexander Peslyak
   
Platform: PCWIN64, little endian



Please wait, while generating 500 entries...
500


Statistics for lz4 with max. compression rate:

ans = 

      MIN_pack_time_: 5.865423008799553e-005
      AVG_pack_time_: 1.897347559530648e-004
      MAX_pack_time_: 2.654103736858815e-004
    MIN_unpack_time_: 2.404823317192495e-005
    AVG_unpack_time_: 6.944193873178764e-005
    MAX_unpack_time_: 8.504863944835961e-005
     MIN_pack_ratio_: 0.796850000000000
     AVG_pack_ratio_: 0.837729971590908
     MAX_pack_ratio_: 0.886337500000000

Statistics for lz4hc with max. compression rate:

ans = 

      MIN_pack_time_: 0.001160473853815
      AVG_pack_time_: 0.003533715474077
      MAX_pack_time_: 0.005888004438020
    MIN_unpack_time_: 2.199533628299832e-005
    AVG_unpack_time_: 6.350419662339845e-005
    MAX_unpack_time_: 9.677946218289435e-005
     MIN_pack_ratio_: 0.784250000000000
     AVG_pack_ratio_: 0.828442421875000
     MAX_pack_ratio_: 0.867137500000000

Statistics for blosclz with max. compression rate:

ans = 

      MIN_pack_time_: 3.601369389798492e-004
      AVG_pack_time_: 0.001069625970203
      MAX_pack_time_: 0.001181589381304
    MIN_unpack_time_: 4.428395186550915e-005
    AVG_unpack_time_: 1.408559779165222e-004
    MAX_unpack_time_: 1.648183970246464e-004
     MIN_pack_ratio_: 0.784200000000000
     AVG_pack_ratio_: 0.836732621951219
     MAX_pack_ratio_: 0.872887500000000