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