Can anybody tell me what is the row-limit of a MySQL table?
Printable View
Can anybody tell me what is the row-limit of a MySQL table?
You mean like the maximum number of rows you can insert into a table?
-tg
Yes, the the maximum number of rows that can be inserted into a MySQL table
Depends on storage engine http://dev.mysql.com/doc/refman/5.1/...e-engines.html
I saw the summary table there. I'm using the InnoDB option. It only says that it has a 64TB capacity.
So does that mean that there is no limit to one table, only to the size of the whole database?
Storage capacity depends on how data is physically stored (addressing), specifically segment.page.row addresses in tablespaces.
Segment is used to identify database object, e.g. table, index. So we are more concerned with page.row components of address. Since each page (which contains rows) is 16KB in size, and you can reference up to typical 4GB limit of memory addresses in 32 bit systems then you have 16KB * 4GB = 64TB limit for a database object that uses InnoDB. If you have two tables in the database then your database can be as large as 128TB. Storage limit on that aspect depends on max value for segment in address (I don't know how many bits are used to store segment number).
http://dev.mysql.com/doc/refman/5.1/...ile-space.html
For each page you would have less than 16KB rows due to overhead for storage of pointers to rows and row end markers. Even if you create a table with rows 1 byte in length you won't have more than 64TB rows in the table. Calculate your storage requirements, if you need more then consider other storage engines, or redesign data architecture, or put into place retention period policies for data (eg deleted after 5 years).