MySQL Memory Usage Limits on 32 bit Linux

I’m having RHEL 5 (32-bit) and MySQL-5.

I was trying to check how much is the Memory Utilization limits for MySQL 5 on 32bit OS.

We can easily calculate the maximum capacity of the address space is 2^32 bytes and that is where these limits come from.
* For MYSQL 5.0: Following are memory (storage) limits:

Max DB size:  Unlimited
Max table size:  MyISAM: 256TB; Innodb: 64TB
Max row size: 64 KB
Max columns per row: 4096
Max Blob/Clob size: 4 GB (longtext, longblob)
Max CHAR size: 64 KB (text)
Max NUMBER size: 64 bits
Min DATE value: 1000
Max DATE value: 9999
Max column name size: 64

* OS Memory Limitations:

Maximum x86 per-process virtual address space for Red-Hat Linux Version
Version 4: ~ 4GB
Version 5: ~ 3GB
* Server Parameters memory allocation limits:

For following buffers:
• key_buffer_size
• join_buffer_size
• myisam_sort_buffer_size
• sort_buffer_size
- Maximum allowable setting is 4GB.
- As of MySQL 5.1.23, values larger than 4GB are allowed for 64-bit platforms.

Others:
net_buffer_length -1MB.
read_buffer_size – 2GB.
read_rnd_buffer_size – 2GB.

* About globally limiting memory usage by MySQL Server:

MySQL is not having any other parameter that directly limits the memory usage. It’s these global buffers / server variables are the only setting which extends / shrinks server memory usage limits.

Eg. max_connections, variable for specifying number of simultaneous connection, depends on OS limits to handle file handlers. No documented limit is there for the same.


References:

http://dev.mysql.com/doc/refman/5.1/en/server-system-variables.html

http://dev.mysql.com/doc/refman/5.1/en/server-system-variables.html

http://en.wikipedia.org/wiki/Comparison_of_relational_database_management_systems

http://www.redhat.com/rhel/compare/

http://support.bull.com/ols/product/system/linux/redhat/help/kbf/g/inst/PrKB11417

Tags: ,