Whenever clients discuss projects built with Microsoft Visual FoxPro, the question always arises as to how much data the largest table and the entire database will contain. This article addresses the problems faced when your client states that individual tables will have more than 2GB of data, and the entire database will consist of many gigabytes of information.
The ideas discussed here were used in the design of the largest data set handled by a single FoxPro application in the world. This data set is used by the Euro Tunnel and consists of 128GB of information. (For more information about the Euro Tunnel, see print page 40 or online page 9.)
FoxPro limits table sizes to a maximum of 2GB each. But this isn't an operating system constraint. Even if your data is stored on an operating system that allows large files, such as UNIX or Windows NT running NTFS, FoxPro tables are still limited to 2GB.
Since a single table is limited to a maximum amount, there's a practical limit to the number of rows that can be contained within that table. The two factors that affect a table's size are the number of records it contains and the physical size of each record. FoxPro permits individual tables to contain one billion records, but this doesn't make much sense, as the table would be limited to a single field one byte wide allowing for only 256 unique records.
A more practical limit to the number of records in a single table is about 15 to 20 million rows with average record lengths of about 100 to 150 bytes. Information can also be stored in memo fields permitting an additional 2GB of data storage for a single table, since the memo data is stored in a separate file.