Limits of the Firebird Database

The significant restrictions are:

  • Max indexes per table is 255 in Firebird 1.5x and 64 in Firebird 1.0x.

  • Max size of an index key is 254 bytes and less for compound keys in Firebird V1.x. Firebird 2 and future versions allow keys up to 25% of the size of a database pages. Character columns that sort in dictionary order rather than byte order require more than one byte per character to represent their collating sequence. As a result, the effective limit on key size may be as low as 90 bytes for some languages. Version 2 will lift this restriction.

  • Max number of conjuncts is 255. A conjunct is a pair of conditions combined with an AND.

    WHERE F1 = 1 and F2 >= 2 and F2 = 5
    

    is 3 conjuctions, but:

    WHERE F1 = 1 or F2 >= 2 or F2 = 5
    

    is 1 conjunction

  • Maximum size of a table is approximately 37Gb of compressed data, not depending on the size of the records, record count or page size. Version 2 does not have this restriction.

  • Metadata names are restricted to 31 characters.

  • The maximum size of a blob is 2Gb.

  • Rows are restricted to 32767 bytes.

  • A database can contain no more than 32767 tables.

  • The maximum size for a database is over 30 terabytes.

  • Maximum number of elements in an IN list is 1499.

    select name from phones where extension
        in (0000, 0001, 0002 ... 1499);