I want to create a MyISAM table in MySQL (tried various versions of 5.0.x and 5.1.x) which allows more than 2^32 rows. The way to achieve this is to get MySQL to use 8-byte instead of 4-byte row pointers.
Here's a quote from the MySQL manual:
If you build MySQL with the --with-big-tables option, the row limitation is increased to 1.844E+19 rows. See Section 2.3.2, “Typical configure Options”. Binary distributions for Unix and Linux are built with this option.
Sounds simple, right? But I've tried various binary distributions for Linux x86_64, and also building MySQL from the source code with the "--with-big-tables" option. In every case I still can't get beyond the 2^32 limit. I create a table like thus:
CREATE TABLE big (col int) MAX_ROWS=1099511627776
And when I check the table status, it says:
Create_options: max_rows=4294967295
How do I escape 32-bit purgatory? Using InnoDB might solve the problem, but it performs a lot more slowly for the type of queries I'm running.
FYI, here's an important reference that didn't solve the problem: