http://www.firebirdsql.org/index.php?op=guide&id=techspec
Firebird Technical Specifications
Updated 2007-07-16 and subject to review
| Database Limits |
| Item |
Firebird 2.x |
Firebird 1.5.x |
|
| Maximum size of database |
Practically unlimited using multiple database files (largest known database is over 980 GB) |
32 TB using multiple files |
|
| Maximum size of one database file |
Multiple terabytes on most platforms; limited by file systems (4 GB or 2 GB on some platforms) |
Same |
|
| Maximum number of database files |
64,535 |
Same |
|
| Maximum number of tables |
64,535 |
Same |
|
| Maximum size of one table |
~32 TB |
~36 GB |
|
| Maximum size of external table file |
2 GB |
Same |
|
| Maximum number of rows per table |
> 16 Billion (not been measured beyond this) |
~4 Billion |
| |
NOTE :: 1 Billion is 1024³ |
|
| Maximum row size |
65,536 bytes (64 KB) |
Same |
|
| Maximum database page size |
16 KB |
Same |
| |
NOTE :: Page size (PAGE_SIZE) can be 1024, 2048, 4096, 8192 or 16384. Size 1024 is not recommended. |
|
| Maximum number of columns per table |
Depends on data types used. (Example: 16,384 INTEGER (4-byte) values per row.) NOTE :: 8-byte ID is stored for each BLOB or ARRAY reference; size of BLOB or ARRAY data is not counted in row size. |
|
| Maximum number of indexes per table |
65,535 |
Same |
|
| Maximum size (total width) of index key |
4,096 bytes when page size is 16 KB (limited to 1/4 of database page size) |
252 bytes |
| |
IMPORTANT :: Limit decreases for character columns when character set is multi-byte; non-binary collation further reduces limit. |
|
|
| Maximum number of indexes per database |
4,398,046,511,104 |
Same |
|
Data Type Specifics
| Name |
Size |
Range/Precision |
Description |
|
| Varchar(n) |
n chars |
1 to 32767 bytes |
Variable length char or text string. NB, multi-byte character sets reduce number of possible characters proportionately |
|
| Smallint |
16 bits |
-2^15 to 2^15-1 |
Signed short (word) |
|
| Integer |
32 bits |
-2^31 to 2^31-1 |
Signed long (longword) |
|
| Float |
32 bits |
3.4 x 10^-38 to 3.4 x 10^38 |
Accurate to 7 digits |
|
| Double Precision |
64 bits |
1.7 x 10^-308 to 1.7 x 10^308 |
Accurate to 15 digits |
|
| Timestamp |
64 bits (2 X 32 bits) |
1 Jan 100 CE to 28 Feb 32768 CE |
Includes time and date as two 32-bit structures |
|
| Date |
32 bits |
1 Jan 100 CE to 28 Feb 32768 CE |
Date only. Time part is not stored. |
|
| Time |
32 bits |
0:00 to 23:59.9999 |
|
|
| BLOB |
<32GB |
-- |
Stores data of variable indeterminate size |
|
| Numeric (precision, scale) |
Variable (16, 32, or 64 bits) |
specifies exactly precision digits of precision |
Example: Numeric(10,3) holds numbers accurately in the following format: ppppppp.sss |
|
| Decimal (precision, scale) |
Variable (16, 32, or 64 bits) |
specifies at least precision digits of precision |
Example: Decimal(10,3) holds numbers accurately in the following format: ppppppp.sss |
|