|
Comparison of relational database management systems
|
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. This article is not all-inclusive or necessarily up-to-date. 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 the RDBMSes can run on.
Note (1): Open source databases listed as UNIX-compatible will likely compile and run under z/OS's built-in UNIX System Services (USS) subsystem. Most databases listed as Linux-compatible can run alongside z/OS on the same server using Linux on zSeries.
Note (2): The database availability depends on Java Virtual Machine not on the operating system
Note (3): Oracle Rdb was originally developed by DEC, and runs on OpenVMS
Note (4): Oracle database 11g also runs on OpenVMS, HP/UX and AIX. 10g also supported BS2000/OSD and z/OS (31-bit), but that support has been discontinued in 11g. Earlier versions than 10g were available on a wide variety of platforms.
Note (5): DB2 is also available for i5/OS, z/VM, z/VSE. Previous versions were also available for OS/2.
Fundamental features
Information about what fundamental RDBMS features are implemented natively.
Note (6): Does not support multiple connections nor multiple transactions.
Note (7): For transactions and referential integrity, the InnoDB table type must be used; Windows installer sets this as default if support for transactions is selected, on other operating systems the default table type is MyISAM. However, even the InnoDB table type permits storage of values that exceed the data range; some view this as violating the Integrity constraint of ACID.
Note (8): FOREIGN KEY constraints are parsed but are not enforced. Triggers can be used instead. Nested transactions are not supported. [1]
Note (9): Available via Triggers.
Limits
Information about data size limits.
|
Max DB size |
Max table size |
Max row size |
Max columns per row |
Max Blob/Clob size |
Max CHAR size |
Max NUMBER size |
Min DATE value |
Max DATE value |
| 4th Dimension |
Unlimited |
? |
? |
65135 |
2 GB (2 GiB Unicode) |
2 GB (2 GiB Unicode) |
64 bits |
? |
? |
| Advantage Database Server |
Unlimited |
16 EB (16 EiB) |
65530 B |
65135/(10+AverageFieldNameLength) |
4 GB (4 GiB) |
? |
64 bits |
? |
? |
| Datawasp |
Unlimited |
2 GB |
32,678 |
256 |
2 GB |
text1024/RTF-Unlimited |
64 bits |
? |
? |
| DB2 |
512 TB (512 TiB) |
512 TB |
32,677 B |
1012 |
2 GB |
32 KB (32 KiB) |
64 bits |
0001 |
9999 |
| Firebird |
Unlimited 1 |
~32 TB |
65,536 B |
Depends on data types used. |
2 GB |
32,767 B |
64 bits |
100 |
32768 |
| Ingres |
Unlimited |
Unlimited |
256 KB |
1024 |
2 GB |
32,000 B |
64 bits |
0001 |
9999 |
| JSMDB |
Limited only by available RAM, address space |
data types defined by the developer |
| Microsoft Access |
2 GB |
2 GB |
16 MB |
255 |
64 KB (memo field), 1 GB ("OLE Object" field) |
255 B (text field) |
32 bits |
? |
? |
| Microsoft Visual Foxpro |
Unlimited |
2 GB |
65,500 B |
255 |
2 GB |
16 MB |
32 bits |
0001 |
9999 |
| Microsoft SQL Server (does not include 2008) |
524,258 TB (32,767 files * 16 TB max file size) |
524,258 TB |
8060 B |
1024 |
2 GB |
8000 B |
64 bits |
1753 2 |
9999 |
| MySQL 5 |
Unlimited |
2 GB (Win32 FAT32) to 16 TB (Solaris) |
64 KB |
3398 |
4 GB (longtext, longblob) |
64 KB (text) |
64 bits |
1000 |
9999 |
| Oracle |
Unlimited (4 GB * block size per tablespace) |
4 GB * block size (with BIGFILE tablespace) |
Unlimited |
1000 |
4 GB (or max datafile size for platform) |
4000 B |
126 bits |
-4712 |
9999 |
| OpenEdge |
Around 32 Exabytes |
1 Petabyte |
32Kb |
1000 |
1 GB |
2000 B |
64 bits |
? |
? |
| Polyhedra DBMS |
Limited only by available RAM, address space |
232 rows |
Unlimited |
65536 |
4 GB (subject to RAM) |
4 GB (subject to RAM) |
32 bits |
? |
? |
| PostgreSQL |
Unlimited |
32 TB |
1.6 TB |
250-1600 depending on type |
1 GB (text, bytea) - stored inline |
1 GB |
Unlimited |
-4713 |
5874897 |
| ScimoreDB |
Unlimited |
16 EB |
8050 B |
255 |
16 TB |
8000 B |
64 bits |
? |
? |
| Teradata |
Unlimited |
Unlimited |
64 KB wo/lobs(64 GB w/lobs) |
2048 |
2 GB |
10,000 |
64 bits |
? |
? |
Note (1): Firebird 2.x maximum database size is effectively unlimited with the largest known database size >980GB[2]. Firebird 1.5.x maximum database size: 32 TB.
Note (2): SQL Server 2008 will have minimum date of 0001-01-01[3]
Tables and views
Information about what tables and views (other than basic ones) are supported natively.
Note (1): Server provides tempdb, which can be used for public and private (for the session) temp tables.[4]
Note (2): Query optimizer support only in Developer and Enterprise Editions. In other versions, a direct reference to materialized view and a query hint are required. [5].
Note (3): Materialized views can be emulated using stored procedures and triggers.[6].
Note (4): Materialized views can be emulated with stored procedures and triggers using PL/pgSQL, PL/Perl, PL/Python, or other procedural languages.[7].
Indexes
Information about what indexes (other than basic B-/B+ tree indexes) are supported natively.
Note (8): Can be emulated by indexing a computed column (doesn't easily update) or by using an "Indexed View" (proper name not just any view works[1])
Note (9): Can be implemented by using an indexed view. [8]
Note (10): A PostgreSQL functional index can be used to reverse the order of a field.
Note (11): PostgreSQL will likely support on-disk bitmap indexes in 8.4. Version 8.2 supports a related technique known as "in-memory bitmap scans".
Note (12): InnoDB automatically generates adaptive hash index entries as needed.
Note (15): Can be implemented using Function-based Indexes in Oracle 8i and higher, but the function needs to be used in the sql for the index to be used.
Note (16): The users need to use a function from freeAdhocUDF library or similar. [9]
Note (17): Can be implemented using Function-based Indexes in Valentina.
Note (18): Can be implemented for most data types using expression-based indexes.
Database capabilities
|