Use Sophia to knock out your gen-ed requirements quickly and affordably. Learn more
×

Storage Limitations

Author: Sophia

what's covered
This tutorial explores the storage limitations of various databases in four parts:
  1. Introduction
  2. Overall Size
  3. Data Type Size Limits
  4. Table Size Limits

1. Introduction

With any new database, decisions must be made about what database management system to use. One of those decision points is storage capacity, as not all databases have the same storage. This could be a programmatic limitation, but it also can be a specific limitation implemented by the vendor. In fact, most commercial databases have different storage limitations. Different versions of specific databases may also have different storage limitations. With PostgreSQL, MariaDB, MySQL, and Teradata, the database itself can be unlimited in size. Other databases, like Oracle, SQL Server, and SQLite, have a maximum cap in terms of database size.

2. Overall Size

Two of the biggest database vendors include Microsoft SQL Server and Oracle. SQL Server has an Express edition that limits the database size to 10 GB. The database itself is free and is scalable and completely compatible with the paid editions, allowing seamless swapping. However, this limitation does force organizations to make the switch to the paid version at the point where the database is heavily used. Oracle also has a current limit of 12 GB for the database, which also is scalable and can be swapped to a paid version. In comparison, the enterprise edition of SQL Server has a maximum size of 524 PB, while Oracle has over 2047 PB. As a comparison, 1 PB is equivalent to 1,000,000 GB.

3. Data Type Size Limits

There may be different size limitations even for data types within a database. This can create some challenges with the migration of data, especially if you have data that goes beyond a limit. Take VARCHAR as an example. Different databases have different max sizes: in ANSI SQL, there is no limit defined, but in MySQL, there is a 65,535 character limit, and in SQL Server, there is a 2 GB limit. In Oracle, there is a 32,767 character limit, and in PostgreSQL, there is a 1 GB limit.

With character large objects (CLOB), this could be XML data, file data, temp tables or other uses for the character large objects. In MySQL, there is a 216 byte limit, in SQL Server there is a 231 – 1 byte limit, in PostgreSQL, there is a 1 GB limit and in Oracle, there is a 4 GB – 1 byte limit. As such, if we need to transfer data between databases, we must recognize that this could be an issue and carefully plan how data migration would work.

It is important to note that the physical space available on a system can also be a concern.

4. Table Size Limits

Tables also have size limitations. Different databases have different criteria for these limits. Some of them are based on the number of rows, while others are based on specific storage size. Some databases, like Teradata, can be unlimited while others, like MySQL, can have a max size of 256 TB. In SQL Server, it can be as large as the database itself, with 524,272 TB. Others like SQLite are based on the file size.


summary
Databases have different storage limitations for the overall database, tables, and data types.

Source: Authored by Vincent Tran