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.