Bug #32878 Inexpensive RAM Allows for Entire DB(s) to be Loaded In RAM
Submitted: 30 Nov 2007 17:06 Modified: 30 Nov 2007 17:36
Reporter: Instruct ICC Email Updates:
Status: Not a Bug Impact on me:
None 
Category:MySQL Server Severity:S4 (Feature request)
Version: OS:Any
Assigned to: CPU Architecture:Any
Tags: DB, performance, RAM

[30 Nov 2007 17:06] Instruct ICC
Description:
I didn't see this in the bug/feature search, and I'm not on a developer list.

I had a conversation yesterday about a server with 48GB RAM and the thought came to me that with the cost of RAM falling, MySQL could load the entire database(s) being used into RAM and would be blazingly fast.

Not that I have any complaints with performance now, but if such a feature doesn't exist in the industry, MySQL could be the first.

Currently my server reports approximately:
Selects 4,000 per hour (2,000,000 over the past 20 days uptime)
Inserts 10 per hour
Updates 20 per hour
Deletes 2 per hour

Of course you'd want to set some default "persist to disk" intervals, but maybe allow that to be modified and definitely before powering down or failing over, etc.  Uninteruptible Power Supplies recommended, etc.

Maybe you already thought of it or offer that feature in later versions, but I thought I'd share my idea with you.

How to repeat:
We have MySQL server on 1 physical server with phpMyAdmin/Apache (Hmm I was just thinking Apache doesn't need to be running on the MySQL physical server).

You could use some "nice" technique like Boinc does in case other processes needed resources (but I'm thinking generally you'd dedicate most RAM to MySQL).

Suggested fix:
If such a feature already exists, perhaps I just need my admin to upgrade.  We are on 4.1.20 Linux.  He usually waits until it comes with a mature distribution.  Personally I'd like to get him on Mac OS X, but I believe their version of MySQL isn't too current either.
[30 Nov 2007 17:36] Hartmut Holzgraefe
Feature exists, for InnoDB it is the InnoDB buffer pool,
for MyISAM it is simply the operating systems file system buffers,
and MySQL Cluster keeps all data in memory and only puts
snapshots and logs to disk ...