Hi there,

I'd like to share some observations about H2 scalability. As inspired
by the 
http://stackoverflow.com/questions/784173/what-are-the-performance-characteristics-of-sqlite-with-very-large-database-files
I decided to carry out some testing as my own project requires
scalability that goes far beyond a few dozen millions of records.

In my DB I've got a single table that is created as follows: "CREATE
TABLE (ID INTEGER PRIMARY KEY
AUTO_INCREMENT, CONTENT BLOB NOT NULL, DESCRIPTION VARCHAR NOT NULL,
STAMP BIGINT DEFAULT NEXT VALUE FOR GLOBAL_STAMP_SEQUENCE)". Both blob
& varchar aren't very big: blob is around 1 kB, varchar is a few
hundred characters. The DB URL is nothing unusual - just
"jdbc:h2:<path>".

Here are the results:
No. of rows in the DB:          8,33M           16,55M          41,18M
Add* [s]                                        16,00           16,59           
16,15
Retrieve** (by PK) [s]          5,1                     4                       
5,5
Close right after open [s]      24,41           48                      117

*) Insertion of 4106 records. The operation itself includes some
expensive non H2-related operations. Their time is approximately
constant.

**) Retrieval of 20 rows. The operation itself includes some expensive
non H2-related operations. Their time is approximately constant.


>From the above one can see that in this case the H2 scales very well -
there is no noticeable performance drop as the table/DB grows bigger.
The only issue observed is the closing time - it looks like it
linearly depends on the number of records in the DB (approx. 2,9 s per
million of records on my machine).


Greets,
wburzyns

-- 
You received this message because you are subscribed to the Google Groups "H2 
Database" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to 
[email protected].
For more options, visit this group at 
http://groups.google.com/group/h2-database?hl=en.

Reply via email to