The following strings have been copied from a Mathematica notebook (old version of QLink).
Install["d:/MyFiles/MyPrograms/QLink/QLink.exe"];
QLink created (May 2008 version) ! You can read information on QOpen, QRead, QRemoveDatabase, QRepair, QClose, QList, QSize, QPut, QGet, QSafeGet, QCheck and QRemove
QOpen["temp"];
(*writing*)
AbsoluteTiming[For[i=1,i<=1000000,i++,QPut["temp",ToString[i],
ToString[RandomInteger[1000000]]]]]
{180.6875000,Null}
(*consequent reading*)
AbsoluteTiming[For[i=1,i<=1000000,i++,result=QGet["temp",ToString[i]]]]
{110.2343750,Null}
(*random reading*)
AbsoluteTiming[For[i=1,i<=1000000,i++,result=QGet["temp",
ToString[RandomInteger[1000000]]]]]
{113.5000000,Null}
(*consequent rewriting*)
AbsoluteTiming[For[i=1,i<=1000000,i++,QPut["temp",ToString[i],
ToString[RandomInteger[1000000]]]]]
{184.5937500,Null}
(*random rewriting*)
AbsoluteTiming[For[i=1,i<=1000000,i++,QPut["temp",ToString[i],
ToString[RandomInteger[1000000]]]]]
{184.3906250,Null}
(*listing the keys*)
AbsoluteTiming[QList["temp"];]
{8.5000000,Null}
(*checking the entries*)
AbsoluteTiming[For[i=1,i<=1000000,i++,result=QCheck["temp",
ToString[RandomInteger[2000000]]]]]
{116.2656250,Null}
(*safe random reading*)
AbsoluteTiming[For[i=1,i<=1000000,i++,result=QSafeGet["temp",
ToString[RandomInteger[2000000]]]]]
{115.9375000,Null}
(*closing*)
QClose["temp"];
(*opening for reading*)
QRead["temp"];
(*random reading in read mode*)
AbsoluteTiming[For[i=1,i<=1000000,i++,result=QGet["temp",
ToString[RandomInteger[1000000]]]]]
{111.8125000,Null}
-----------------------------------------------------
(* another example - skipping the initialization part *)
(*10 times larger entries*)
AbsoluteTiming[For[i=1,i<=1000000,i++,QPut["temp",ToString[i],
StringJoin@@Table[ToString[RandomInteger[1000000]],{10}]]]]
{249.9843750,Null}
AbsoluteTiming[For[i=1,i<=1000000,i++,result=QGet["temp",ToString[i]]]]
{121.8750000,Null}
AbsoluteTiming[QList["temp"];]
{8.6718750,Null}
------------------------------------------------------
(* another example - skipping the initialization part *)
(*10 times more entries than in example 1*)
AbsoluteTiming[For[i=1,i<=10000000,i++,QPut["temp",ToString[i],
ToString[RandomInteger[1000000]]]]]
{2292.8281250,Null}
(*consequent reading*)
AbsoluteTiming[For[i=1,i<=10000000,i++,result=QGet["temp",ToString[i]]]]
{1394.6718750,Null}
(*listing the keys*)
AbsoluteTiming[QList["temp"];]
{78.6718750,Null}