HSQLDB (HyperSQL Database) is a relational database management system. It is written in Java.
HSQLDB (HyperSQL Database) is a relational database management system.
HSQLDB can be used inside Java application processes to serve local databases. HSQLDB also includes a database server, which allows access over the network.
Each HSQLDB instance can serve multiple databases. Each database can contain multiple schemas. The databases can be all-in-memory (mem: url) or persisted to disk (file: url). Persisted databases can use a mix of tables that are always kept in memory (MEMORY tables) and tables that are only cached in memory (CACHED tables) which can grow to many gigabytes and beyond the available memory.
HSQLDB is extremely fast, especially when used in memory, or when the database is relatively small.
HSQLDB supports a very extensive subset of the ISO Standard SQL:2011. It also features SQL syntax compatibility modes which simplify porting applications written for another database engine.
HSQLDB supports user-defined stored procedures, functions, aggregate functions, and triggers. These can be written in Java or in SQL procedural language (PSM). It also features an extensive list of built-in functions.
HSQLDB is fully multi threaded. It can operate in three different transaction models: the Two Phased Lock model (TPL), the Multiversion Concurrency Control Model (MVCC) and a mixed, pessimistic multiversion model with snapshot isolation. In each model, a transaction can run in read committed or serializable isolation levels.
HSQLDB has been around since 2001 and is supported by many Java frameworks and tools.