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.
