The following tables compare general and technical information for a number of relational database management systems. Please see the individual products' articles for further information. Unless otherwise specified in footnotes, comparisons are based on the stable versions without any add-ons, extensions or external programs. General information Operating system support The operating systems that the RDBMSes can run on. Fundamental features Information about what fundamental RDBMS features are implemented natively. Note (1): Currently only supports read uncommited transaction isolation. Version 1.9 adds serializable isolation and version 2.0 will be fully ACID compliant. Note (2): MariaDB and MySQL provide ACID compliance through the default InnoDB storage engine. Note (3): "For other than InnoDB storage engines, MySQL Server parses and ignores the FOREIGN KEY and REFERENCES syntax in CREATE TABLE statements. The CHECK clause is parsed but ignored by all storage engines." Note (4): Support for Unicode is new in version 10.0. Note (5): MySQL provides GUI interface through MySQL Workbench. Note (6): OpenEdge SQL database engine uses Referential Integrity, OpenEdge ABL Database engine does not and is handled via database triggers. Limits Information about data size limits. Note (1): Firebird 2.x maximum database size is effectively unlimited with the largest known database size >980 GB. Firebird 1.5.x maximum database size: 32 TB. Note (2): Limit is 1038 using DECIMAL datatype. Note (3): InnoDB is limited to 8,000 bytes (excluding VARBINARY, VARCHAR, BLOB, or TEXT columns). Note (4): InnoDB is limited to 1,017 columns. Note (6): Using VARCHAR (MAX) in SQL 2005 and later. Note (7): When using a page size of 32 KB, and when BLOB/CLOB data is stored in the database file. Note (8): Java array size limit of 2,147,483,648 (231) objects per array applies. This limit applies to number of characters in names, rows per table, columns per table, and characters per CHAR/VARCHAR. Note (9): Despite the lack of a date datatype, SQLite does include date and time functions, which work for timestamps between 24 November 4714 B.C. and 1 November 5352. Note (10): Informix DATETIME type has adjustable range from YEAR only through 1/10000th second. DATETIME date range is 0001-01-01 00:00:00.00000 through 9999-12-31 23:59:59.99999. Note (11): Since version 12c. Earlier versions support up to 4000 B. Note (12): The 128PB limit refers to the storage limit of a single Informix server instance. Informix v12.10 and later versions support using sharding techniques to distribute a table across multiple server instances.