At 19:59 12/07/2006, you wrote:
32 bits, the size of the key, only holds numbers up to 2 or 4 billion.
You said you have 8 billion rows.
You need a 64 bit version or to split up the data into many tables.


On 7/12/06, Cesar David Rodas Maldonado <[EMAIL PROTECTED]> wrote:
So Jay... Do you think that i have to use a PC of 64 bits, or 32bits pc with
clustering?

None of both is needed, but a lot of ram and a fast hard disk (scsi 15000 rpm or raid system), yes and pragma tweaking will help in get faster responses.

> > I want to ask to the people something... If i have a table with about
> > 8.000.000.000 registers, and i have to do a select in a numeric row that
> > will have index. what db do you recommend to me for use?
>
> If you design the database correctly it should work, but I believe
> that large a total number of records will not be addressable on
> a personal computer. I think the 32 bit version is limited to 2^32
> records.
>

From FAQ, question 10: http://www.sqlite.org/faq.html explains that the limit of rows in a table is (2^64)-1 and 64 bit compilation isn't needed. Also, there is a limit of 32 (or was 31) to the maximum number of databases and some other minor limits. Check documentation.


(10) Are there any known size limits to SQLite databases?

A database is limited in size to 2 tibibytes (241 bytes). That is a theoretical limitation. In practice, you should try to keep your SQLite databases below 100 gigabytes to avoid performance problems. If you need to store 100 gigabytes or more in a database, consider using an enterprise database engine which is designed for that purpose.

The theoretical limit on the number of rows in a table is 264-1, though obviously you will run into the file size limitation prior to reaching the row limit. A single row can hold up to 230 bytes of data in the current implementation. The underlying file format supports row sizes up to about 262 bytes.

There are probably limits on the number of tables or indices or the number of columns in a table or index, but nobody is sure what those limits are. In practice, SQLite must read and parse the original SQL of all table and index declarations everytime a new database file is opened, so for the best performance of <http://www.sqlite.org/capi3ref.html#sqlite3_open>sqlite3_open() it is best to keep down the number of declared tables. Likewise, though there is no limit on the number of columns in a table, more than a few hundred seems extreme. Only the first 31 columns of a table are candidates for certain optimizations. You can put as many columns in an index as you like but indexes with more than 30 columns will not be used to optimize queries.

The names of tables, indices, view, triggers, and columns can be as long as desired. However, the names of SQL functions (as created by the <http://www.sqlite.org/capi3ref.html#sqlite3_create_function>sqlite3_create_function() API) may not exceed 255 characters in length.




-----------------------------------------------------------------------------------------
Useful Acronymous : FAQ = Frequently 'Answered' Questions

Reply via email to