25294 Views 5 Replies Latest reply: Feb 29, 2008 8:49 PM by SCW-Greg
well, the contacts database is an SQLite-Database, and the SQLite documentation says this:
The default setting for SQLITEMAXCOLUMN is 2000. You can change it at compile time to values as large as 32676. You might be able to redefine this value to be as large as billions, though nobody has ever tried doing that so we do not know if it will work.
so the limit lies somwhere between 2000 and 32676 probably. I'd guess apple chose the maximum to prevent any problems.
Don't confuse "columns" with "rows". Assuming a flat file structure (non relational DB), 2000 columns only references 2000 "fields" within any given record (aka row). I doubt there's a cap on records within the SQL db. The only cap would be in how big you define what a "contact" is.
The more data (columns containing data) in a record, i.e. columns = phone, email, street address, fax, etc. etc. the more memory that one record/contact will consume.
The other variable would be how much memory do you have free.
Finally, it is possible (not knowing how the system runs) that there would be some performance issues if you had an iPhone dedicated only to storing contact info (no music, no videos, etc.), and it was maxed out.
If you assume that a standard contact entry had around 100 bytes of data (each byte being a character in the alphabet, plus a little overhead), and you had 7Gb of storage free, that would translate to a theoretical storage capacity of 70 million entries.
Call me a nerd!